flask快速入門

2021-07-25 07:34:11 字數 3548 閱讀 9426

from flask import flask

defhello_world

():return

'hello world!'

if __name__ == '__main__':

#除錯模式

在url中的路徑可以當做變數傳到相應的處理函式裡面

defshow_user_profile

(username):

# show the user profile for that user

return

'user %s' % username

url裡面的函式還可以經過轉換

defshow_post

(post_id):

# show the post with the given id, the id is an integer

return

'post %d' % post_id

可轉換的內容如下

int 接受整數

float 同 int ,但是接受浮點數

path 和預設的相似,但也接受斜線

defprojects

():return

'the project page'

這種url如果訪問了不帶/結尾的 那麼會被flask重定向到帶/的規範url裡面

defabout

():return

'the about page'

如果訪問了帶/結尾的url 會404

根據函式來生成由他處理的url

>>> from flask import flask, url_for

... def index(): pass

...... def login(): pass

...... def profile(username): pass

...... print url_for('index') #根據函式來生成由他處理的url

... print url_for('login')

... print url_for('login', next='/')

... print url_for('profile', username='john doe')

.../

/login

/login?next=/

/user/john%20doe

預設情況下 route只響應get請求

deflogin

():if request.method == 'post':

do_the_login()

else:

show_the_login_form()

需要提供靜態檔案的地方

只要在你的包中或是模組的所在目錄中建立乙個名為 static 的資料夾,在應用中使用 /static 即可訪問。

給靜態檔案生成 url ,使用特殊的 『static』 端點名:

url_for('static', filename='style.css')
使用 render_template() 方法來渲染模板.

flask 會在 templates 資料夾裡尋找模板。所以,如果你的應用是個模組,這個資料夾應該與模組同級;如果它是乙個包,那麼這個資料夾作為包的子目錄:

from flask import render_template

defhello

(name=none):

return render_template('hello.html', name=name)

flask 中由全域性的 request 物件來提供這些資訊.

request.method 獲得請求方式

request.form獲得post 的引數

如果獲取的引數沒有那麼預設返回400 badrequest..然後還會產生異常會丟擲乙個特殊的 keyerror 異常。

deflogin

(): error = none

if request.method == 'post':

if valid_login(request.form['username'],

request.form['password']):

return log_the_user_in(request.form['username'])

else:

error = 'invalid username/password'

# the code below is executed if the request method

# was get or the credentials were invalid

return render_template('login.html', error=error)

上傳的問在儲存在

request物件的files物件裡面

獲得cookie

request 物件的cookies.get(『name』)

設定cookie

from flask import make_response

defindex

(): resp = make_response(render_template(...))

resp.set_cookie('username', 'the username')

return resp

redirect() 函式把使用者重定向到其它地方

「` from flask import abort, redirect, url_for

定製錯誤頁面
errorhandler() 裝飾器:

from flask import render_template

##關於響應

如果返回值是乙個字串, 它被轉換為該字串為主體的、狀態碼為 200 ok``的 、mime 型別是 ``text/html 的響應物件

flask 把返回值轉換為響應物件的邏輯是這樣:

如果返回的是乙個合法的響應物件,它會從檢視直接返回。

如果返回的是乙個字串,響應物件會用字串資料和預設引數建立。

如果返回的是乙個元組,且元組中的元素可以提供額外的資訊。這樣的元組必須是 (response, status, headers) 的形式,且至少包含乙個元素。 status 值會覆蓋狀態**, headers 可以是乙個列表或字典,作為額外的訊息標頭值。

如果上述條件均不滿足, flask 會假設返回值是乙個合法的wsgi 應用程式,並轉換為乙個請求物件。

#session

如果想使用session必須要先設定secret_key

from flask import flask, session, redirect, url_for, escape, request

」』要和模板配合 .提供訊息閃現

flash() 方法可以閃現一條訊息。要操作訊息本身,請使用 get_flashed_messages() 函式

Flask快速入門

關於flask的翻譯文章還挺多的 1.翻譯的挺好,比較容易懂,有些錯別字 2.感覺翻譯的比較生硬,比機器翻譯好些 3.未仔細度過,感覺應該介於以上兩者之間 4.多個與flask相關的翻譯專案 flask docs cn flask sqlalchemy docs cn flask wtf docs ...

Flask入門二 快速入門

from flask import flask 路由裝飾器 defhello world 檢視函式 return hello world 返回乙個字串 if name main 把程式儲存為hello.py 用python直譯器執行 python hello.py running on訪問 會看見 ...

flask 帶你快速入門

建立乙個python檔案 hello.py from flask import flask defhello world 檢視函式 return hello world 返回乙個字串 if name main 用python直譯器來執行 python hello.py running on上面 首先...