一. 簡(jiǎn)單應(yīng)用
1. 安裝flask
sudo easy_install pip(如果沒(méi)有pip先安裝pip)
sudo pip install flask
2. 一個(gè)簡(jiǎn)單的應(yīng)用
# coding=utf-8
from flask import Flask # 導(dǎo)出Flask類(lèi)
app = Flask(__name__) # 生成一個(gè)web app對(duì)象
@app.route('/') # 注冊(cè)一個(gè)url亭姥,表示當(dāng)請(qǐng)求url + '/',這個(gè)網(wǎng)址時(shí),執(zhí)行hello_world這個(gè)函數(shù)
def hello_world():
return 'hello, world'
if __name__ == '__main__': # 啟動(dòng)這個(gè)app應(yīng)用
app.run() # 相關(guān)參數(shù)app.run(host=None, port=None, debug=None, **options)
# host默認(rèn)是127.0.0.1
# port默認(rèn)是5000
保存為hello.py(文件名不能是flask.py,會(huì)與Flask本身沖突)
$ python hello.py
Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
將該網(wǎng)址粘貼到瀏覽器打開(kāi)即可
Mac 下 遇到報(bào)錯(cuò)python socket.error: [Errno 48] Address already in use
打開(kāi)終端毡代,輸入sudo lsof -i:XXXX
xxxx是你剛剛用來(lái)開(kāi)啟服務(wù)的端口號(hào)
然后執(zhí)行kill -9 aaaa
aaaa是出現(xiàn)的那個(gè)PID
然后重新運(yùn)行程序即可成功
3. 文件目錄結(jié)構(gòu)
4. flask深入學(xué)習(xí)資料
Flask官方網(wǎng)站:http://docs.jinkan.org/docs/flask/
Flask大型教程項(xiàng)目:http://www.pythondoc.com/flask-mega-tutorial/
stack overflow:http://stackoverflow.com/questions/tagged/flask
二. python web開(kāi)發(fā)框架
1. flask
簡(jiǎn)單付魔,輕量站蝠,靈活性大
2. django
簡(jiǎn)單菩貌,比f(wàn)lask重泄私,靈活性沒(méi)有flask好物独,出現(xiàn)時(shí)間長(zhǎng)
3. web.py
簡(jiǎn)單袜硫,輕量,但不會(huì)再積極維護(hù)了
三.python flask框架使用
views.py:接口邏輯
# coding=utf-8
# views.py
from flask import Flask # 導(dǎo)出Flask類(lèi)
app = Flask(__name__) # 生成一個(gè)web app對(duì)象
@app.route('/') # 注冊(cè)一個(gè)url挡篓,表示當(dāng)請(qǐng)求url + '/',這個(gè)網(wǎng)址時(shí)婉陷,執(zhí)行home_page這個(gè)函數(shù)
def home_page():
home_data = logic.get_home()
return home_data
@app.route('/books')
def books():
books_data = logic.get_books()
return books_data
@app.route('/book/<string: book_id>')
def book(book_id):
book_data = logic.get_book(book_id)
return book_data
@app.route('/students')
def students():
students_data = logic.get_students()
return students_data
@app.route('/student/<string: student_id>')
def book(student_id):
student_data = logic.get_student(student_id)
return student_data
if __name__ == '__main__': # 啟動(dòng)這個(gè)app應(yīng)用
app.run() # 相關(guān)參數(shù)app.run(host=None, port=None, debug=None, **options)
# host默認(rèn)是127.0.0.1
# port默認(rèn)是5000
logic.py:邏輯處理
# coding=utf-8
# logic.py
def get_home():
#獲取圖書(shū)館主頁(yè)資料,一般是讀取數(shù)據(jù)庫(kù)或者緩存系統(tǒng)
return 'data of home page'
def get_books():
return 'list of books basic info'
def get_book(book_id):
return 'detailed info of book : {}'.format(book_id)
def get_students():
return 'list of students basic info'
def get_student(student_id):
return 'detailed info of student : {}'.format(student_id)
run.py:應(yīng)用發(fā)布