PS:flask 及github的新手向文章鸿吆,大神繞路
《flask Web 開發(fā)》該書的優(yōu)勢(shì)在于 結(jié)合作者可以設(shè)計(jì)的代碼倉(cāng)庫(kù)搏屑,一步步展現(xiàn)一個(gè)項(xiàng)目的各個(gè)方面的細(xì)節(jié)低缩,依次來展現(xiàn)flask框架的各個(gè)方面堪旧,但是本書 沒有細(xì)致的闡述 flask 框架的語法糠雨,重點(diǎn)是闡述flask開發(fā)的基本流程才睹,代碼閱讀起來會(huì)感覺邏輯十分混亂,不適合結(jié)構(gòu)圖形式的筆記甘邀,因此 通過復(fù)現(xiàn)書中的代碼及倉(cāng)庫(kù)的創(chuàng)建過程來學(xué)習(xí)git及flask琅攘,同時(shí)記錄遇到的語法疑點(diǎn),進(jìn)行進(jìn)一步查證松邪。
環(huán)境設(shè)置
- 工作目錄:
E:\study\evernote\material\flasky2
- 創(chuàng)建本地倉(cāng)庫(kù):
git init
- 添加 git忽略規(guī)則
.gitignore
- 添加筆記文件
readme.md
- 創(chuàng)建虛擬環(huán)境:
virtualenv venv
,>venv\scripts\activate
, 向.gitignore
添加venv
- 安裝 flask:
pip install flask
, 向.gitignore
添加 python 的忽略項(xiàng)*.py[cod] *.so *.egg *.egg-info dist build
第一個(gè)完整程序
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1> Hello World !</h1>'
# 路由的基本使用
@app.route('/user/<name>')
def user(name):
return '<h1> Hello %s !</h1>' % name
# 動(dòng)態(tài)路由的基本實(shí)現(xiàn)
if __name__ == '__main__':
app.run(debug=True)
- 添加到本地倉(cāng)庫(kù),
git add .
,git commit -m "2a, basic use of route"
上下文對(duì)象和url_map
from flask import Flask
from flask import request
app = Flask(__name__)
# 路由的基本用例
@app.route('/')
def index():
# return '<h1> Hello World !</h1>'
# request 請(qǐng)求上下文的使用
# use_agent = request.headers.get('User-Agent')
# return '<h1> Your brower is %s !</h1>' % use_agent
# url_map 的信息
return '<p> url_map is %s !</h1>' % app.url_map
# 動(dòng)態(tài)路由的基本用例
@app.route('/user/<name>')
def user(name):
return '<h1> Hello %s !</h1>' % name
if __name__ == '__main__':
app.run(debug=True)
- 添加到本地倉(cāng)庫(kù),
git add .
,git commit -m "2b, request and url_map"
響應(yīng)對(duì)象 Response 的使用
from flask import Flask
from flask import make_response
app = Flask(__name__)
# 路由的基本用例
@app.route('/')
def index():
# 相應(yīng) Response 對(duì)象的基本使用
response = make_response( '<h1> This file carries with a cookie !</h1>' )
response.set_cookie('answer','42')
return response
# 動(dòng)態(tài)路由的基本用例
@app.route('/user/<name>')
def user(name):
return '<h1> Hello %s !</h1>' % name
if __name__ == '__main__':
app.run(debug=True)
- Chrome 瀏覽器查看 cookie 點(diǎn)擊 url 左側(cè)的感嘆號(hào)
- 添加到本地倉(cāng)庫(kù),
git add .
,git commit -m "2c, response object"
重定向?qū)ο?redirect 和 abort 的使用
from flask import Flask
from flask import redirect
from flask import abort
app = Flask(__name__)
# 路由的基本用例
@app.route('/')
def index():
# 重定向響應(yīng) redirect(url)
return redirect('http://baidu.com')
# 動(dòng)態(tài)路由的基本用例
@app.route('/user/<name>')
def user(name):
if name !='zhang':
# 處理錯(cuò)誤的abort 函數(shù)的使用
abort(404)
return '<h1> Hello %s !</h1>' % name
if __name__ == '__main__':
app.run(debug=True)
- 添加到本地倉(cāng)庫(kù),
git add .
,git commit -m "2d, redirect and abort"
flask-script 支持命令行選項(xiàng)
- 安裝 flask-script:
pip install flask-script
from flask import Flask
from flask_script import Manager
app = Flask(__name__)
manager = Manager(app)
# 路由的基本用例
@app.route('/')
def index():
return '<h1> Hello world !</h1>'
# 動(dòng)態(tài)路由的基本用例
@app.route('/user/<name>')
def user(name):
return '<h1> Hello %s !</h1>' % name
if __name__ == '__main__':
manager.run()
- 指定服務(wù)器地址
python hello.py runserver --host localhost
- 添加到本地倉(cāng)庫(kù),
git add .
,git commit -m "2e, flask-script basic"