1. 程式人生 > >Flask框架基礎篇(一)

Flask框架基礎篇(一)

Python flask基礎知識

Flask是一個使用Python語言編寫的輕量Web開發級框架--"麻雀雖小,五臟俱全"。flash兩大核心: 基於Werkzeug的路由模塊,基於Jinja2模板引擎。
中文文檔:http://docs.jinkan.org/docs/flask/
虛擬環境配置參照中文文檔:
下面通過在代碼裏面介紹一些基礎知識點:

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
# 需要在當前路徑下新建config.ini文件 內容為 DEBUG=True
# app.config.from_pyfile(‘config.ini‘)
# 2.從配置對象中加載
# class Config(object):
#     DEBUG = True
# app.config.from_object(Config)
# 3.直接在run()中傳入參數debug=True

# 歡迎首頁
@app.route(‘/‘)
def index():
    return "<h1>Hello friend<br>This is first Flask</h2>"

# 帶參數路由傳遞,將輸入的地址打印到頁面
# @app.route(‘/user/<name>‘)
# def user(name):
#     return ‘<h2>hello,%s!!</h2>‘ % name

# 設置瀏覽器地址欄傳入參數類型
# 瀏覽器輸入默認為str類型 ,可做限定類型還有 float ,path(也是字符串類型)
@app.route(‘/user/<int:user_id>‘)
def user_info(user_id):
    return "user_info:%d" % user_id

# 設置請求方法
@app.route(‘/demo‘, methods=[‘GET‘,‘POST‘,‘HEAD‘])
def demo():
    return request.method

# 返回json格式的數據
@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 調用視圖函數的url‘‘‘
    return redirect(url_for(‘demo01‘))

# 自定義狀態碼
@app.route(‘/demo03‘)
def demo03():
    # print("自定義狀態碼")
    return ‘狀態碼‘,123

# 正則匹配
# 自定義轉換器
class ReConverter(BaseConverter):
    def __init__(self, url_map, *args):
        super(ReConverter, self).__init__(url_map)
        self.regex = args[0]

# 將自定義轉換器添加到轉換器字典中,並指定轉換器使用名稱

app.url_map.converters[‘re‘] = ReConverter

# 通過調用自定義轉換器,過濾瀏覽器輸入不合規參數
@app.route(‘/user/<re("[0-9]{3}"):user_id>‘)
def user_msg(user_id):
    return "正則限定後 user_id 是:%s" % user_id

# url_for(‘‘)調用視圖函數的url
@app.route(‘/demo04‘)
def demo04():
    return url_for(‘demo03‘)

# 程序入口
if __name__ == ‘__main__‘:
    app.run(debug=True)

Flask框架基礎篇(一)