日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

flask 基礎(chǔ)語(yǔ)法學(xué)習(xí)

 印度阿三17 2019-04-12

回顧

#6行flask
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
    return "HelloWorld!!"
app.run()

1.response

from flask import render_template,redirect,send_file,jsonify
return =httpresponse
render_template
redirect
特殊返回值
1.send_file(文件路徑) 打開文件并返回文件內(nèi)容 Content-Type 文件類型 自動(dòng)識(shí)別
2.jsonify({k:v}) Content-Type:application/json app.config["JSONIFY_MIMETYPE"]

2.request

request.method 請(qǐng)求方式
request.args url參數(shù)
print(request.args.to_dict())#轉(zhuǎn)換成字典
request.form FormData 數(shù)據(jù)
request.json #請(qǐng)求頭 Content-Type:application/json 數(shù)據(jù)序列化至此
request.data 只要請(qǐng)求體中有內(nèi)容 b"”
request.files 接收FormData中的文件

3.session

from flask import session
app.secret_key="123213"
session["user"]="username"

4.路由

動(dòng)態(tài)參數(shù)
@app.route("/detail/<stu_id>")
def detail(stu_id)
    1.endpoint Flask Mapping 路由和視圖的指向
    2.methods 允許進(jìn)入視圖函數(shù)的請(qǐng)求方式

5.初始化配置

Flask(__name__) 中
1.template_folder 模版存放路徑
2.static_folder 靜態(tài)文件存放路徑
3.static_url_path 金泰文件訪問(wèn)路徑

6.config對(duì)象 正式測(cè)試環(huán)境

 2.Flask對(duì)象配置
    app.config == app.default_config 查看默認(rèn)配置 及 配置項(xiàng)
    
    class Obj(object):
        DEBUG = True
    
    app.config.from_object(Obj) # 記住

7.藍(lán)圖

Flask藍(lán)圖 
    Blueprint:  bp.py
    from flask import Blueprint
    # 把Blueprint理解為 不能被 Run 的 Flask 對(duì)象
    bp = Blueprint("bp",__name__,url_prefix="/user")

    @bp.route("/bp",methods=["GET","Post"])
    def my_bp():
        return "I am bp in user.py"
    
    __init__py
    from flask import Flask
    from .views import add

    def create_app():
        app=Flask(__name__)
        app.register_blueprint(add.add)
        return  app
    
    app.py:
    from flask import Flask
    from user import bp
    from acc import acc
    app = Flask(__name__)

    app.register_blueprint(bp)
    app.register_blueprint(acc)

    if __name__ == '__main__':
        app.run(debug=True)

8.特殊裝飾器 中間件

@app.before_request # 在請(qǐng)求進(jìn)入視圖函數(shù)之前
@app.after_request # 結(jié)束視圖函數(shù)之后,在響應(yīng)返回客戶端之前
def af5(ret):

正常 be1 - be2 - vf - af5 - af4 - af3 - af2 - af1
異常 be1 - af5 - af4 - af3 - af2 - af1

@app.errorhandler(404)
def error404(error_message):

9.CBV

from flask import views

class Login(views.MethodView):
    def get(self):
        pass
    
    def post(self):
        pass

app.add_url_rule("/login",endpoint=None,view_func=Login.as_view(name="login"))

endpoint == as_view(name="login") 中的 "login"

jianjin2 模版

    {{}} 引用 執(zhí)行函數(shù)
    {%%} 邏輯代碼

    {{ stu_list[0].name }}{{ stu_list.0.age }}
    {{ stu_dict }}

{% for stu in stu_list %}
    <p>{{ stu.name }}{{ stu.get("age") }}{{ stu["gender"] }}</p>
{% endfor %}
#if判斷
{% if v["gender"] == "中" %}
    男
{% else %}
    {{ v["gender"] }}
{% endif %}

自定義標(biāo)簽simple_tag

@app.template_global()#全局使用 可選
def ab(a,b):
    return a b
 html中引入
 {{ ab(4,4) }}
 
 前端執(zhí)行html
@app.route("/")
def index():
    tag = "<input type='text' name='user' value='xiao'>"
    return render_template("index.html",tag=tag)
<body>

    {{ tag|safe }}

</body>

后端執(zhí)行html
from flask import Markup  # 導(dǎo)入 flask 中的 Markup 模塊
@app.route("/")
def index():
    tag = "<input type='text' name='user' value='xiao'>"
    # Markup幫助咱們?cè)贖TML的標(biāo)簽上做了一層封裝,讓Jinja2模板語(yǔ)言知道這是一個(gè)安全的HTML標(biāo)簽
    markup_tag = Markup(tag)
    print(markup_tag,type(markup_tag))

    return render_template("index.html", tag=markup_tag)
    
母板
index.html
<body>
    <h1>Welcome to My</h1>
    <h2>下面的內(nèi)容是不一樣的</h2>
    {% block content %}

    {% endblock %}
    <h2>上面的內(nèi)容是不一樣的,但是下面的內(nèi)容是一樣的</h2>
    <h1>My is Good</h1>
</body>
login.html
{% extends "index.html"%}
{% block content %}
{% endblock %}

include jinja2
login.html
<h4>歡迎登陸</h4>
<form>
    用戶名:<input type="text" name="user">
    密碼:<input type="text" name="pwd">
    <input type="submit" value="提交">
</form>

index.html 文件中的內(nèi)容

<body>

    <h1>Welcome to My</h1>

    {% include "login.html" %}
    <h2>上面的內(nèi)容是不一樣的,但是下面的內(nèi)容是一樣的</h2>

    <h1>My is Good</h1>

</body>

?

來(lái)源:http://www./content-4-162701.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多