您好,登錄后才能下訂單哦!
Flask是一個使用Python語言編寫的輕量Web開發(fā)級框架--"麻雀雖小,五臟俱全"。flash兩大核心: 基于Werkzeug的路由模塊,基于Jinja2模板引擎。
中文文檔:http://docs.jinkan.org/docs/flask/
虛擬環(huán)境配置參照中文文檔:
下面通過在代碼里面介紹一些基礎(chǔ)知識點:
from flask import Flask
from flask import request
from flask import jsonify
from flask import redirect, url_for
from werkzeug.routing import BaseConverter
app = Flask(__name__)
# 1.通過配置文件加載,加載debug
# 需要在當(dāng)前路徑下新建config.ini文件 內(nèi)容為 DEBUG=True
# app.config.from_pyfile('config.ini')
# 2.從配置對象中加載
# class Config(object):
# DEBUG = True
# app.config.from_object(Config)
# 3.直接在run()中傳入?yún)?shù)debug=True
# 歡迎首頁
@app.route('/')
def index():
return "<h2>Hello friend<br>This is first Flask</h3>"
# 帶參數(shù)路由傳遞,將輸入的地址打印到頁面
# @app.route('/user/<name>')
# def user(name):
# return '<h3>hello,%s!!</h3>' % name
# 設(shè)置瀏覽器地址欄傳入?yún)?shù)類型
# 瀏覽器輸入默認(rèn)為str類型 ,可做限定類型還有 float ,path(也是字符串類型)
@app.route('/user/<int:user_id>')
def user_info(user_id):
return "user_info:%d" % user_id
# 設(shè)置請求方法
@app.route('/demo', methods=['GET','POST','HEAD'])
def demo():
return request.method
# 返回json格式的數(shù)據(jù)
@app.route('/demo01')
def demo01():
json_dict = {
"user_id":12,
"user_name":"董永",
"age":20
}
return jsonify(json_dict)
#重定向
@app.route('/demo02')
def demo02():
# 重定向到百度
# return redirect('http://www.baidu.com')
# 重定向到歡迎首頁
# return redirect('/')
'''url_for 調(diào)用視圖函數(shù)的url'''
return redirect(url_for('demo01'))
# 自定義狀態(tài)碼
@app.route('/demo03')
def demo03():
# print("自定義狀態(tài)碼")
return '狀態(tài)碼',123
# 正則匹配
# 自定義轉(zhuǎn)換器
class ReConverter(BaseConverter):
def __init__(self, url_map, *args):
super(ReConverter, self).__init__(url_map)
self.regex = args[0]
# 將自定義轉(zhuǎn)換器添加到轉(zhuǎn)換器字典中,并指定轉(zhuǎn)換器使用名稱
app.url_map.converters['re'] = ReConverter
# 通過調(diào)用自定義轉(zhuǎn)換器,過濾瀏覽器輸入不合規(guī)參數(shù)
@app.route('/user/<re("[0-9]{3}"):user_id>')
def user_msg(user_id):
return "正則限定后 user_id 是:%s" % user_id
# url_for('')調(diào)用視圖函數(shù)的url
@app.route('/demo04')
def demo04():
return url_for('demo03')
# 程序入口
if __name__ == '__main__':
app.run(debug=True)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。