網頁應用學習 Flask 和 Ant design

2021-10-06 11:20:34 字數 2714 閱讀 9418

(此筆記是根據網路的hello flask教程學習記錄而來,可能存在重疊內容)

如果在除錯的時候,我們需要改變主程式名字,這裡就需要改變環境變數,安裝python-dotenv來實現環境變數直接讀取根目錄裡面的環境變數

其中/是用來規定url規則的字串,\指的是根位址,也就是說一旦訪問就看到的內容,會對修飾的函式自動呼叫

'/')

可以自由修改修飾器規則字串,但是一定要以"/"開頭

使用escape函式是為了避免使用者的惡意輸入及網路攻擊,這樣就可以不讓python解析輸入的**而直接轉譯成文字。當然如果不轉義也是可以用的,但是存在風險

import flask

from flask import escape

'/user/'

)def

user_page

(name)

:return

'user page: {}'

.format

(escape(name)

)

from flask import url_for

print

(url_for(

'test_url_for'

, num=2)

)# 輸出:/test?num=2

模板是用於輸出資料的一種格式,按照模板的樣子數出來。模板需要儲存在根目錄裡的templates資料夾內部,同時要以html形式呈現。會按照html規定好的輸出來

對於flask來講,使用render_template函式可以自動呼叫templates裡面的模板,並按照格式輸出。這裡的模板是採用jinjia2模板渲染引擎

對於模板的全域性變數,可以使用以下**

definject_user()

: user = user.query.first(

)return

dict

(user=user)

這裡的user是乙個db.model的繼承類,通過這樣的方式就將所有的reder_template裡面的user全部都換成了inject_user裡面定義的東西了。

這樣的好處是對於公用的資料庫變數,我不需要每次都在進入頁面的時候過載,而是只需要載入一次。分享資料。

模板渲染引擎

生成假資料的利器:faker

模板繼承

使用基模板和子模板的繼承關係減少**的重複

...

相比於模板,靜態檔案用於展示那些不會隨著資料變的東西,這裡就涉及到前端問題了。那麼我們可以直接上手css,也可以用ant design等前端設計框架。

模板用於套用需要出現的資料,一些動態變化的資料量。之所以稱為靜態,因為他不跟著互動資料改變,比如**的樣式,比如網頁頭標等。

例如以下代買,寫在模板裡面,就會讓瀏覽器的標籤圖示變成我想要的模樣

>

charset

="utf-8"

>

>

}'s watchlisttitle

>

rel=

"icon"

href

="}"

>

head

>

填寫表單從而讓使用者輸入資料

method

="post"

>

name type

="text"

name

="title"

autocomplete

="on"

required

>

year type

="text"

name

="year"

autocomplete

="off"

required

>

class

="btn"

type

="submit"

name

="submit"

value

="add"

>

form

>

flash 訊息:

執行某種操作後,頁面跳出的提示訊息,這裡flask使用flash函式來實現。由於flash()函式會把訊息儲存到flask提供的session內部,因此使用session來請求儲存資料會存到瀏覽器cookie中,需要設定金鑰

但是在對外公開的**中,金鑰不能明碼標註

對於表單的檢驗:

可以通過手動檢驗,也就是說在**中不斷檢驗條件和修改格式,當然在真實操作中一般會採用第三方的檢驗工具,例如wtforms

登入登出等都需要用到flask_login模組,需要pip安裝一下

from werkzeug.security import generate_password_hash, check_password_hash
對於user類需要進行重新定義,增加對usermixin模組的繼承(之前它只對db.model)進行了繼承。

檢視保護模組化**構造可參考 hello flask的第十章

Flask學習筆記 建立Flask應用的準備工作

1.安裝python 在命令列輸入python,如果同時安裝了python 2.x 和 3.x 輸入 py 2 進入2.x的互動式直譯器,輸入py 3進入3.x的互動式直譯器。當命令列視窗顯示如下所示的畫面,則代表python已經安裝成功了 python 3.5.2 v3.5.2 4def2a290...

Flask 應用和請求上下文

from flask import request defindex user request.headers.get user agent return you browserid format user 標題flask應用上下文和請求上下文 變數名上下文說明 應用上下文 當前應用的應用例項 g應...

網頁設計學習XHTML應用小結

網頁設計學習xhtml應用小結 籠統來說,標準網頁 的檔案組織就是xhtml css。其中xhtml主要用來表示網頁結構和顯示內容,而css則是定義結構布局和修飾內容樣式。常用於布局的xhtml一般有 同時對各區塊建議這樣的命名 注 id具有唯一性,即在同一頁面中不得重複出現該id兩次以上。否則使用...