欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

python3+flask 開發(fā)web(一) - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 網(wǎng)站建設 >

python3+flask 開發(fā)web(一)

發(fā)表時間:2018-10-25

發(fā)布人:葵宇科技

瀏覽次數(shù):74

1、環(huán)境準備

1)安裝Python:https://www.python.org/

2)安裝python ide,pycharm:https://www.jetbrains.com/pycharm/

3)安裝flask:安裝好了python,電腦就自動安裝了pip,在cmd中執(zhí)行命令:pip install flask

2、寫代碼:

1)helloword:

from flask import Flask
app = Flask(__name__)     #創(chuàng)建一個wsgi應用

@app.route('/')           #添加路由:根
def hello_world():
    return 'Hello World!' #輸出一個字符串

if __name__ == '__main__':
    app.run(debug=True)             #啟動app的調試模式


?

執(zhí)行后:

在瀏覽器的地址欄打開:http://127.0.0.1:50000/這個url,顯示如下:

本例中app是Flask類的一個實例,在實例化過程中傳遞了一個參數(shù)name,Flask通過這個參數(shù)識別app是模塊級別還是包級別的。實際上app符合相關接口,它是一個WSGI應用。

有了app對象以后,它就成為了一個中心節(jié)點,把所有的URL規(guī)則、視圖函數(shù)、模板配置等連接起來,最終形成一個Web應用。

使用@app.route修飾函數(shù)創(chuàng)建一個URL規(guī)則,直接在被修飾的函數(shù)中寫出處理該URL要做的事情。使用過PHP、ASP的童鞋可能剛開始不習慣這種URL命名規(guī)則,因為最早使用腳本開發(fā)Web應用的時候,一個文件就會對應一個URL。
2)字符串

?
from flask import Flask


app=Flask(__name__)


@app.route('/')
def hello_word():
    return '<h1>Hello Word!</h1>'

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

?

執(zhí)行結果:

3)json

?
?
?
from flask import Flask
import json



app=Flask(__name__)


@app.route('/json')
def do_json():
    hello = {"name":"stranger", "say":"hello"}
    return json.dumps(hello)


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

?

?

?

執(zhí)行結果;

4)http狀態(tài)碼:

?
?
?
?
from flask import Flask
import json



app=Flask(__name__)


@app.route('/status_500')
def status_500():
    return "hello", 500



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

?

?

?

?

執(zhí)行結果:

5)http頭:

from flask import Flask
from flask import make_response



app=Flask(__name__)

@app.route('/set_header')
def set_header():
    resp=make_response('<h1>This document has a modified header!</h1>')
    resp.headers['X-Something']='A value'
    resp.headers['Server']='My special http server'
    return resp




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

?

?

?

?

?

執(zhí)行結果:

6)cookie:

什么是cookie:

什么是cookie?如果單單從數(shù)據(jù)結構的角度來說,它可以被理解成用來保存數(shù)據(jù)的一個dictionary,由一組組鍵值對組成.如果從作用上來說,我們知道Http協(xié)議是一種無狀態(tài)的協(xié)議.什么叫無狀態(tài)呢,就是本次的客戶端請求不會保留上一次客戶端請求的狀態(tài),簡單點說就是這樣會要求我們每次在瀏覽器中點開一個網(wǎng)站的鏈接都會輸一次賬戶和密碼.cookie就是用來解決這個問題的.

為了解決上述問題,我們第一次登錄web服務器,服務端就會在它的響應中的Set-Cookie字段中發(fā)送一些鍵值對,這就包括一個Session ID以及其他一些信息(也包括我們自定義的cookie中的鍵值對),并告訴客戶端在本地緩存這個cookie.然后客戶端以后進行鏈接時每次都會發(fā)送這個Session ID,服務器一看是哪個Session ID就知道是哪個客戶端發(fā)起的鏈接了,就不會要求我們再次輸賬戶和密碼驗證了.

我們在flask中自定義cookie,實際上就是在響應Response的Set-Cookie字段中增加我們自定義的鍵值對.而獲取cookie,就是通過請求Request中通過鍵獲取其對應的值.

(1)設置cookie和獲取cookie

from flask import Flask
from flask import make_response
import datetime
from flask import request

app=Flask(__name__)

@app.route('/set_cookie') #設置cookie
def set_cookie():
    response=make_response('<h1>This document carries a cookie!</h1>')
    outdate=datetime.datetime.today()+datetime.timedelta(days=30)  #cookie的有效時長30天
    response.set_cookie('username','evancss',expires=outdate)
    return response

@app.route('/get_cookie')    #獲取cookie
def get_cookie():
    name=request.cookies.get('username')
    return name

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

執(zhí)行結果:

set_cookie

get_cookie

注意cookie的時效性:我們在瀏覽器上設置cookie的有效時長優(yōu)先級要高于我們在代碼中設置的

(2)刪除cookie常用的方法:

1可以通過在瀏覽器中設置來清除cookie.

2使用Response的set_cookie進行清除

@app.route('/del_cookie')
def del_cookie():
    response=make_response('delete cookie')
    response.set_cookie('username','',expires=0)
    return response

3使用Response的 delete_cookie方法.

def del_cookie2():
    response=make_response('delete cookie2')
    response.delete_cookie('username')
    return response

7)重定向:

?
?
?
from flask import Flask
from flask import redirect



app=Flask(__name__)


@app.route('/redir')
def redir():
    return redirect('https://www.baidu.com')




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

?

?

?

執(zhí)行結果:

用fiddler抓包看看:

8)abort:

?
?
?
from flask import Flask
from flask import abort



app=Flask(__name__)


@app.route('/user/<id>')
def get_user(id):
    if int(id)>10:
        abort(404)
    return '<h1>Hello,%s</h1>'%id




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

?

?

?

執(zhí)行結果:

id=22

id=2

遇到的問題:新建項目的選擇解釋器和location的時候注意一下

參考博文:https://blog.csdn.net/langkew/article/details/51594880

相關案例查看更多