麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

【Flask】FlaskWeb開(kāi)發(fā)上手點(diǎn)滴(01)-入門

2019-11-14 12:39:09
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
python版本:3.5flask版本:0.12jinja2:2.94werkzeug:0.11.15

IDE使用pyCharm。

1.1、首例

首先從flask初始化的一個(gè)例子說(shuō)起。 打開(kāi)pyCharm新建一個(gè)Flask的項(xiàng)目之后,會(huì)初始化一個(gè)Flask的程序目錄(假設(shè)創(chuàng)建一個(gè)名為flaskblog的項(xiàng)目)。首先來(lái)看flaskblog.py這個(gè)文件里的代碼: (包含注釋)

#flaskblpg.py#1、初始化:創(chuàng)建一個(gè)程序?qū)嵗齠rom flask import Flaskapp = Flask(__name__)#flask用name這個(gè)參數(shù)決定程序的根目錄,以便稍后能夠找到相對(duì)于程序根目錄的資源文件位置。#2、路由和視圖函數(shù):客戶端把請(qǐng)求發(fā)送給web服務(wù)器,web服務(wù)器再把請(qǐng)求發(fā)送給flask程序?qū)嵗3绦驅(qū)嵗枰缹?duì)每個(gè)URL請(qǐng)求運(yùn)行哪些代碼#所以保存了一個(gè)URL到Python函數(shù)的映射關(guān)系。處理URL和函數(shù)之間的關(guān)系稱為路由。# @app.route('/')flask是使用程序?qū)嵗峁┑腶pp.route修飾器,把修飾的函數(shù)注冊(cè)為路由。@app.route('/user/<name>')#尖括號(hào)中得內(nèi)容就是動(dòng)態(tài)部分,任何能匹配靜態(tài)部分的URL都會(huì)映射到這個(gè)路由上。# flask支持在路由中使用int(如:@app.route('/user/<int:id>'))/float/path類型.path類型也是字符串,但不把斜線視作分隔符,而將其當(dāng)做動(dòng)態(tài)片段的一部分。def hello_world(name):# 視圖函數(shù),返回的響應(yīng)可以是包含HTML的簡(jiǎn)單字符串,也可以是復(fù)雜的表單 return '<h1>Hello,%s!</h1>' %name#3、啟動(dòng)服務(wù)器:程序?qū)嵗胷un方法啟動(dòng)flask集成的開(kāi)發(fā)web服務(wù)器。服務(wù)器啟動(dòng)后會(huì)進(jìn)入輪詢,等待并處理請(qǐng)求。輪詢會(huì)一直運(yùn)行,直到程序#停止,比如按Ctrl-C鍵。if __name__ == '__main__': app.run(debug=True)#啟用調(diào)式模式,ps:flask提供的web服務(wù)器不適合在生產(chǎn)環(huán)境中使用。

請(qǐng)?jiān)敿?xì)閱讀注釋,然后在pyCharm中選中flaskblog.py運(yùn)行(Run),在瀏覽器中測(cè)試。在瀏覽器地址欄中輸入http://127.0.0.1:5000/user/imagineXie進(jìn)行測(cè)試。

1.2程序與請(qǐng)求上下文

請(qǐng)求對(duì)象封裝了客戶端發(fā)送的HTTP請(qǐng)求。在多線程服務(wù)器中,多個(gè)線程同時(shí)處理不同客戶端發(fā)送的不同請(qǐng)求時(shí),每個(gè)線程看到的request對(duì)象必然不同。Falsk使用上下文讓特定的變量在一個(gè)線程中全局可訪問(wèn),與此同時(shí)卻不會(huì)干擾其他線程。

Flask兩種上下文: (1)程序上下文

current_app:當(dāng)前激活程序的程序?qū)嵗齡:處理請(qǐng)求時(shí)用作臨時(shí)存儲(chǔ)的對(duì)象。每次請(qǐng)求都會(huì)重設(shè)這個(gè)變量

(2)請(qǐng)求上下文

request:請(qǐng)求對(duì)象,封裝了客戶端發(fā)出的HTTP請(qǐng)求中得內(nèi)容session:用戶會(huì)話,用于存儲(chǔ)請(qǐng)求之間需要“記住”的值的詞典

在使用這些變量時(shí),我們需要先激活(push())程序(app_context())或請(qǐng)求上下文,否則會(huì)報(bào)錯(cuò)。

1.3請(qǐng)求調(diào)度

URL映射是URL和視圖函數(shù)之間的對(duì)應(yīng)關(guān)系。Falsk使用app.route修飾器或者非修飾器形式的app.add_url_rule()生成映射。

Falsk為每個(gè)路由都指定了請(qǐng)求方法,這樣不同的請(qǐng)求方法發(fā)送到相同的URL上時(shí),會(huì)使用不同的視圖函數(shù)進(jìn)行處理。

1.4請(qǐng)求鉤子

請(qǐng)求鉤子使用修飾器實(shí)現(xiàn)。Falsk支持4種鉤子。

before_first_request:注冊(cè)一個(gè)函數(shù),在處理第一個(gè)請(qǐng)求之前運(yùn)行。before_request:注冊(cè)一個(gè)函數(shù),在每次請(qǐng)求之前運(yùn)行。after_request:注冊(cè)一個(gè)函數(shù),如果沒(méi)有未處理的異常拋出,在每次請(qǐng)求之后運(yùn)行。teardown_request:注冊(cè)一個(gè)函數(shù),即使有未處理的異常拋出,也在每次請(qǐng)求之后運(yùn)行。

1.5響應(yīng)

HTTP響應(yīng)中一個(gè)很重要的部分是“狀態(tài)碼”,默認(rèn)為200,表示請(qǐng)求已被成功處理。

Flask視圖函數(shù)還能返回Response對(duì)象。make_response()函數(shù)可接受1、2或3個(gè)參數(shù),并返回一個(gè)Response對(duì)象。 eg:

from flask import [email protected]('/')def index(): response=make_response('<h1>This document carries a cookie!</h1>') response.set_cookie('answer',42) return response

有一種名為“重定向”的特殊響應(yīng)類型。這種響應(yīng)沒(méi)有頁(yè)面文檔,只告訴瀏覽器一個(gè)新地址用以加載新頁(yè)面。 重定向常使用302狀態(tài)碼表示,指向的地址由Location首部提供。Flask提供redirect()輔助函數(shù)用于生成這種響應(yīng):

from flask import [email protected]('/')def index(): return redirect('http://www/example.com')

還有一種響應(yīng)用于處理錯(cuò)誤,由abort函數(shù)生成:

from flask import [email protected]('/user/<id>')def get_user(id): user=load_user(id) if nor user: abort(404)return '<h1>Hello,%s</h1>'%user.name

以上例子中,如果URL中動(dòng)態(tài)參數(shù)id對(duì)應(yīng)的用戶不存在,就返回狀態(tài)碼404。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产精品99久久久久久久女警 | 13一14毛片免费看 | 欧美一区二区三区中文字幕 | 黄色一级片在线免费观看 | 精国产品一区二区三区 | 国产成年人网站 | 欧美一级棒 | 国产精品jk白丝蜜臀av软件 | 美国av片在线观看 | 国产一区二区三区撒尿在线 | 久久久久亚洲精品国产 | 国产亚洲综合一区二区 | fc2国产成人免费视频 | 成人免费乱码大片a毛片视频网站 | 二级大黄大片高清在线视频 | 黄色片在线观看网站 | 舌头伸进添的我好爽高潮网站 | 91麻豆精品国产91久久久无需广告 | 黄污污网站 | 国产精品刺激对白麻豆99 | 免费一级片网站 | 欧美日韩在线播放一区 | 国产成人精品一区二区视频免费 | 日本精品一区二区 | 国产免费一区二区三区在线能观看 | 2023av在线视频 | 日日综合| 欧美高清一级片 | 国产精品九九久久一区hh | 一区二区久久久久草草 | 国产成年人在线观看 | 91精品国产91久久久 | 欧美黄色片一级 | 狠狠干五月天 | 免费在线观看午夜视频 | www69xxxxx| 久夜tv| 日韩黄在线观看 | 2019天天干夜夜操 | 成人视屏在线 | 国产99久久久久久免费看农村 |