Python Flask教程(一)
作業系統:Windows
Python:3.5
歡迎加入學習交流QQ群:657341423
路由規則
路由,就是我們常說的網址,專業一點就是url。
在Flask裡面,路由的設定是一個裝飾器實現的。如圖:
括號裡面就是我們自定義的路由地址。而且為一個字串。皆以/為開頭。上圖就單一個/,就是代表域名主頁。看看執行結果就知道了
路由的變數規則
在上圖可以看到這段程式碼
@app.route('/user/<username>')
def show_user_profile(username):
# show the user profile for that user
return 'User %s' % username
這裡的url設定有<username>
,而且函式帶引數username,這說明url裡面的<username>
是一個變數,而且通常引數形式傳遞給對應的函式。
路由的/規則
看程式碼
會發現沒有註釋的程式碼的url設定裡面,結尾一個有/,一個是沒有的。
先看看執行結果:
會發現projects在url上無論加不加/都可以調到該網頁上,但是about就不行。
這個細節的設計要值得注意。
題外話:在django也有這個情況。不過和Flask完全是不一樣的情況。
路由的get和post
使用者每次訪問網頁都是http裡面的get方法,Flask裡面設定get,post方法是在路由設定的。
from flask import request
#匯入reques
#設定post和get
@app.route('/projects/',methods=['GET', 'POST'])
def projects():
#判斷是post還是get
if request.method=='POST':
return 'The project page'
else:
return 'a'
方法比較簡單。這裡不做詳細解釋。
基本上Flask的路由設定大概就那麼多:
1,路由的變數規則
2,路由的/規則
3,設定http的post和get
Ruturn型別
模板渲染
看完路由的設定,然後看def裡面的return,這個return和Django的一樣功能,都是使用者瀏覽該url後,伺服器通過這個url返回顯示相應的網頁給使用者瀏覽。也就是說url生成的頁面內容。
程式碼
@app.route('/hello/<name>')
def hello(name=None):
return render_template('hello.html', name=name)
通過匯入from flask import render_template
然後return render_template即可
注意的是模板(html檔案)在該檔案目錄下templates查詢的。
如圖
<!doctype html>
<title>Hello from Flask</title>
{% if name %}
<h1>Hello {{ name }}!</h1>
{% else %}
<h1>Hello World!</h1>
{% endif %}
基本上模板的渲染和Django的一樣用法。可參考
此外還有模板繼承,請參考
重定向
在return一個模板之外,還有一個重定向的方法,就是我瀏覽了這個url之後,自動跳轉到另外的一個url上。
程式碼
from flask import redirect
@app.route('/about/aa')
def aa():
return redirect('/projects/')
這程式碼實現了,當瀏覽器輸入http://127.0.0.1:5000/about/aa後,會自動跳到http://127.0.0.1:5000/projects/。
基本上return的方法就模板渲染和重定向
獲取post和get資料
from flask import request
@app.route('/projects/',methods=['GET', 'POST'])
def projects():
if request.method=='POST':
name=request.form.get('name','aa')
age=request.form.get('age','b')
return name+' is '+age
else:
a=request.args.get('mytext1','mypassword')
return str(a)
獲取post方法有2種,官方文件是request.form['username']
的
這裡是用request.form.get(‘name’,‘aa’)的。
個人比較建議使用第二種,因為第一種如果username不存在的話,會出異常。而第二種的話,就是name不存在的話,值會變成aa。
同理get也是如此
測試結果:
此外還有檔案上存功能,請參考
基本上一個簡單的網站就這樣完成了。這個只能算入門級。後面會涉及到admin站點管理,flask_sqlalchemy(ORM)工具使用,flask構建MTV開發模式
相關文章
- Python Flask Web教程001:Flask簡介PythonFlaskWeb
- Python Flask基礎教程(入門)PythonFlask
- Python之Flask框架一PythonFlask框架
- Python教程系列之Flask框架的學習PythonFlask框架
- Flask系列教程(26)——Flask-ScriptFlask
- 寫一本Flask入門教程Flask
- Python程式和Flask框架中使用SQLAlchemy的教程PythonFlask框架SQL
- Flask教程第一章:Hello,World!Flask
- flask入門教程Flask
- 《Flask 入門教程》 第 2 章:Hello, Flask!Flask
- [python][flask] Flask 入門(以一個部落格後臺為例)PythonFlask
- 【Python】【001】建立第一個 FlaskPythonFlask
- 用python+flask自己製作api(教程附原始碼)PythonFlaskAPI原始碼
- python flask配置PythonFlask
- [譯]Flask教程–請求物件Flask物件
- python的flask框架PythonFlask框架
- python 中的 flaskPythonFlask
- 【python Flask】用uwsgi 啟動flask 服務方式PythonFlask
- Flask教程第十四章:AjaxFlask
- Flask教程第十一章:美化Flask
- python-flask學習PythonFlask
- python flask 設定cookiePythonFlaskCookie
- python flask 定時器PythonFlask定時器
- Flask之旅: 寫一個簡單的Python Web框架FlaskPythonWeb框架
- Flask01 第一個flask專案Flask
- 教程 Redis+ flask+vue 線上聊天RedisFlaskVue
- [譯]Flask教程–重定向與錯誤Flask
- 《Flask 入門教程》第 3 章:模板Flask
- 小白自學Python(一) -- Python教程Python
- flask學習(一)Flask
- 一個練習專案,好玩的bbs-python-flaskPythonFlask
- python怎麼安裝flaskPythonFlask
- [python][flask] Jinja 模板入門PythonFlask
- python教程(一)·簡介Python
- python教程(一)·python環境搭建Python
- Flask 教程 第八章:粉絲Flask
- Flask教程第九章:分頁Flask
- 選擇一個 Python Web 框架:Django vs Flask vs PyramidPythonWeb框架DjangoFlask