成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

一、flask的基本使用-flask

一、簡(jiǎn)介

成都創(chuàng)新互聯(lián)長(zhǎng)期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為金湖企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè),金湖網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

Flask是一個(gè)基于Python開發(fā)并且依賴jinja2模板和Werkzeug  WSGI服務(wù)的一個(gè)微型框架,對(duì)于Werkzeug本質(zhì)是Socket服務(wù)端,其用于接收http請(qǐng)求并對(duì)請(qǐng)求進(jìn)行預(yù)處理,然后觸發(fā)Flask框架,開發(fā)人員基于Flask框架提供的功能對(duì)請(qǐng)求進(jìn)行相應(yīng)的處理,并返回給用戶,如果要返回給用戶復(fù)雜的內(nèi)容時(shí),需要借助jinja2模板來實(shí)現(xiàn)對(duì)模板的處理,即:將模板和數(shù)據(jù)進(jìn)行渲染,將渲染后的字符串返回給用戶瀏覽器。

“微”(micro) 并不表示你需要把整個(gè) Web 應(yīng)用塞進(jìn)單個(gè) Python 文件(雖然確實(shí)可以 ),也不意味著 Flask  在功能上有所欠缺。微框架中的“微”意味著 Flask 旨在保持核心簡(jiǎn)單而易于擴(kuò)展。Flask 不會(huì)替你做出太多決策——比如使用何種數(shù)據(jù)庫(kù)。而那些  Flask 所選擇的——比如使用何種模板引擎——?jiǎng)t很容易替換。除此之外的一切都由可由你掌握。如此,F(xiàn)lask 可以與您珠聯(lián)璧合。

默認(rèn)情況下,F(xiàn)lask 不包含數(shù)據(jù)庫(kù)抽象層、表單驗(yàn)證,或是其它任何已有多種庫(kù)可以勝任的功能。然而,F(xiàn)lask  支持用擴(kuò)展來給應(yīng)用添加這些功能,如同是 Flask  本身實(shí)現(xiàn)的一樣。眾多的擴(kuò)展提供了數(shù)據(jù)庫(kù)集成、表單驗(yàn)證、上傳處理、各種各樣的開放認(rèn)證技術(shù)等功能。Flask  也許是“微小”的,但它已準(zhǔn)備好在需求繁雜的生產(chǎn)環(huán)境中投入使用

二、安裝

pip3 install flask

三、werkzeug簡(jiǎn)介

     Werkzeug是一個(gè)WSGI工具包,他可以作為一個(gè)Web框架的底層庫(kù)。這里稍微說一下, werkzeug 不是一個(gè)web服務(wù)器,也不是一個(gè)web框架,而是一個(gè)工具包,官方的介紹說是一個(gè) WSGI 工具包,它可以作為一個(gè) Web 框架的底層庫(kù),因?yàn)樗庋b好了很多 Web 框架的東西,例如 Request,Response 等等

代碼示例:

from werkzeug.wrappers import Request, Response

@Request.application
def hello(request):
    return Response('Hello World!')

if __name__ == '__main__':
    from werkzeug.serving import run_simple
    run_simple('localhost', 4000, hello)

四、flask快速使用

from flask import Flask
# 實(shí)例化產(chǎn)生一個(gè)Flask對(duì)象
app=Flask(__name__)
# 開啟調(diào)試模式后,修改代碼也可自動(dòng)重啟
app.debug=True
# 將 '/'與視圖函數(shù)index的對(duì)應(yīng)關(guān)系添加到路由中
@app.route('/')
def index():
    return 'ok'
if __name__ == '__main__':
    app.run()

案例:登錄,顯示用戶信息

main.py

from flask import Flask,render_template,request,redirect,session,url_for
app = Flask(__name__)
app.debug = True
app.secret_key = 'sdfsdfsdfsdf'

USERS = {
    1:{'name':'張三','age':18,'gender':'男','text':"道路千萬條"},
    2:{'name':'李四','age':28,'gender':'男','text':"安全第一條"},
    3:{'name':'王五','age':18,'gender':'女','text':"行車不規(guī)范"},
}

@app.route('/detail/<int:nid>',methods=['GET'])
def detail(nid):
    user = session.get('user_info')
    if not user:
        return redirect('/login')

    info = USERS.get(nid)
    return render_template('detail.html',info=info)


@app.route('/index',methods=['GET'])
def index():
    user = session.get('user_info')
    if not user:
        # return redirect('/login')
        url = url_for('l1')
        return redirect(url)
    return render_template('index.html',user_dict=USERS)


@app.route('/login',methods=['GET','POST'],endpoint='l1')
def login():
    if request.method == "GET":
        return render_template('login.html')
    else:
        # request.query_string
        user = request.form.get('user')
        pwd = request.form.get('pwd')
        if user == 'lqz' and pwd == '123':
            session['user_info'] = user
            return redirect('http://www.baidu.com')
        return render_template('login.html',error='用戶名或密碼錯(cuò)誤')

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

templates/detail.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h2>詳細(xì)信息 {{info.name}}</h2>
    <div>
        {{info.text}}
    </div>
</body>
</html>

templates/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h2>用戶列表</h2>
    <table>
        {% for k,v in user_dict.items() %}
        <tr>
            <td>{{k}}</td>
            <td>{{v.name}}</td>
            <td>{{v['name']}}</td>
            <td>{{v.get('name')}}</td>
            <td><a href="/detail/{{k}}">查看詳細(xì)</a></td>
        </tr>
        {% endfor %}
    </table>
</body>
</html>

templates/login.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form method="post">
<p>用戶名:<input type="text" name="name"></p>
<p>密碼:<input type="password" name="pwd"></p>
<input type="submit" value="提交">
</form>
</body>
</html>

標(biāo)題名稱:一、flask的基本使用-flask
文章鏈接:http://jinyejixie.com/article24/jjphce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站收錄、網(wǎng)站改版、品牌網(wǎng)站建設(shè)網(wǎng)站營(yíng)銷、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
克什克腾旗| 福清市| 九龙坡区| 龙州县| 平乡县| 黄骅市| 太原市| 门源| 武安市| 宜川县| 建宁县| 金山区| 伽师县| 寻乌县| 郁南县| 加查县| 洛川县| 肃北| 孝昌县| 南充市| 察隅县| 皋兰县| 三台县| 秭归县| 社旗县| 岱山县| 新巴尔虎左旗| 乐业县| 尼玛县| 连州市| 西城区| 师宗县| 安义县| 象山县| 寻甸| 渑池县| 伽师县| 许昌市| 东兰县| 邢台市| 和顺县|