欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

一、flask的基本使用-flask

一、簡介

成都創(chuàng)新互聯(lián)長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(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è)微型框架,對于Werkzeug本質(zhì)是Socket服務(wù)端,其用于接收http請求并對請求進(jìn)行預(yù)處理,然后觸發(fā)Flask框架,開發(fā)人員基于Flask框架提供的功能對請求進(jìn)行相應(yīng)的處理,并返回給用戶,如果要返回給用戶復(fù)雜的內(nèi)容時(shí),需要借助jinja2模板來實(shí)現(xiàn)對模板的處理,即:將模板和數(shù)據(jù)進(jìn)行渲染,將渲染后的字符串返回給用戶瀏覽器。

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

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

二、安裝

pip3 install flask

三、werkzeug簡介

     Werkzeug是一個(gè)WSGI工具包,他可以作為一個(gè)Web框架的底層庫。這里稍微說一下, werkzeug 不是一個(gè)web服務(wù)器,也不是一個(gè)web框架,而是一個(gè)工具包,官方的介紹說是一個(gè) WSGI 工具包,它可以作為一個(gè) Web 框架的底層庫,因?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對象
app=Flask(__name__)
# 開啟調(diào)試模式后,修改代碼也可自動重啟
app.debug=True
# 將 '/'與視圖函數(shù)index的對應(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://aaarwkj.com/article24/jjphce.html

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

廣告

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

小程序開發(fā)
色哟哟网站之中文字幕| 亚洲欧美日韩1区2区| 日本午夜节目在线观看| 亚洲永久免费黄色av| 亚洲综合一区二区在线视频 | 成人作爱视频免费播放| 午夜神马福利激情视频| 亚洲国产日韩精品av| 亚洲综合av一区二区三区四区| 日本a亚洲中文字幕永远| 午夜看片福利欧美熟女| 日韩精品一区二区三区中文| 亚洲一区二区三区熟女少妇| 国语对白自拍视频在线播放| 欧美一区二区三区人妻熟妇| 亚洲中文字幕精品视频乱码| 国产日韩欧美另类综合| 91国内精品手机在线高清| 亚洲日本韩国一区二区| 欧美a级黄片免费在线观看| 亚洲精品在线一二三区| 成年网站在线91九色| 在线免费观看欧美黄片| 日韩一区二区三级在线| 99久久偷拍美女大白屁股 | 国产三级国产精品三级| 高清在线一区二区在线| 国产日韩精品一区二区三区在线| 在线观看视频网站一卡二卡| 伊人久久大香线蕉av网站 | 日本高清免费观看一区| 亚洲激情一区在线观看| 久久久国产精品9999综合| 欧美精品三级不卡在线| 日本av电影一区二区三区四区| 我想看亚洲一级黄色录像| 亚洲av最近在线观看| 亚洲欧美日韩综合精品久久| 国产精品国产成人生活片| 久久99精品久久久子伦| 国产黄片一区二区不卡|