最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python-Web框架flask使用示例教程

 更新時(shí)間:2023年07月14日 14:58:38   作者:渣渣灑淚成長(zhǎng)記  
這篇文章主要介紹了Python-Web框架flask使用示例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1.Web框架

1.1 flask

python的web框架,目錄結(jié)構(gòu)如下:

1.static存放的是css,js的樣式文件

2.templates存放的是html文件

3.app.py是主要接口入口,默認(rèn)創(chuàng)建就有如下代碼:

from flask import Flask
app = Flask(__name__)    #這是兩條短線
# 路由解析,通過(guò)用戶訪問(wèn)的路徑,匹配相應(yīng)的函數(shù)
@app.route('/')
def hello_world():
   return 'hello world'
if __name__ =='__main__':
   # 啟動(dòng)Flask框架
   # debug=True 開(kāi)啟debug模式,在調(diào)式階段開(kāi)啟debug不止更改東西不用重啟,還可以出現(xiàn)錯(cuò)誤,界面直接給你展現(xiàn)錯(cuò)誤原因
   app.run()

右鍵啟動(dòng)以后,則控制臺(tái)有以下信息

點(diǎn)擊藍(lán)色鏈接以后則瀏覽器打開(kāi)訪問(wèn)web,其實(shí)就是flask框架在啟動(dòng)監(jiān)聽(tīng),默認(rèn)給的端口是5000

1.1.1 debug調(diào)試

在沒(méi)有上線階段,最好用debug模式,默認(rèn)debug模式是關(guān)閉的,如控制臺(tái)會(huì)寫(xiě)Debug mode:off,開(kāi)啟debug則需要在代碼app.run里寫(xiě)debug=True,我這里如下圖片為on,表示啟動(dòng)成功了,有的環(huán)境會(huì)debug不成功,是不同環(huán)境的原因,可以采用其他方式更改。

debug還有一個(gè)好處就是后臺(tái)業(yè)務(wù)出現(xiàn)問(wèn)題,可以在前臺(tái)頁(yè)面展示

比如我更改如下代碼,輸出name,但是name變量沒(méi)有定義:

刷新界面:它會(huì)告訴你什么錯(cuò)誤,也會(huì)告知錯(cuò)誤在哪里,所以初學(xué)者一定在調(diào)試時(shí)使用debug模式,能更方便定義問(wèn)題。

debug還可以不重新啟動(dòng)更改業(yè)務(wù)直接界面刷新就會(huì)不一樣,在代碼更改nihao,如

# 路由解析,通過(guò)用戶訪問(wèn)的路徑,匹配相應(yīng)的函數(shù)
 @app.route('/')
 def hello_world():
 	return 'nihao'

自己定義一個(gè)web服務(wù):

@app.route('/test')
def mappingTest():
   return 'test app'

訪問(wèn)這個(gè)web服務(wù),test

 1.1.2 定義參數(shù)web服務(wù) 獲取字符串

1.獲取字符串,通過(guò)<> 后臺(tái)能夠獲取內(nèi)容,多個(gè)則/paramTest//,paramTest(name,age)

# 通過(guò)訪問(wèn)路徑,獲取用戶的字符串參數(shù)
@app.route('/paramTest/<name>')
def paramTest(name):
   return 'test app,%s'%name

訪問(wèn)結(jié)果

需要定義<int:paramname>則代表接收int型數(shù)據(jù),還可folat類型,則<folat:參數(shù)>

@app.route('/intTest/<int:id>')
def intTest(id):
   return 'test app,%d'%id

結(jié)果:

1.1.3 html網(wǎng)頁(yè)渲染

咱們返回直接返回內(nèi)容了,如果直接返回網(wǎng)頁(yè)呢,需要導(dǎo)入包為render_template,通過(guò)render_template("index.html")直接返回html網(wǎng)頁(yè)內(nèi)容,前提是需要?jiǎng)?chuàng)建html

from flask import Flask, render_template
# 訪問(wèn)網(wǎng)頁(yè)
@app.route('/')
def index():
   return render_template("index.html")

在templates目錄下創(chuàng)建一個(gè)index.html,自動(dòng)就有這些結(jié)構(gòu),在body下加你好啊幾個(gè)字

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
   你好啊
</body>
</html>

網(wǎng)頁(yè)刷新

1.13.1 帶參數(shù)傳給網(wǎng)頁(yè)文件 普通元素

1.普通元素,通過(guò)定義var把time 傳給html文件里

import datetime
#向頁(yè)面?zhèn)鬟f一個(gè)變量,html接收以{{定義的變量名來(lái)使用}}
@app.route('/')
def index():
   time=datetime.date.today() #普通變量
   return render_template("index.html",var=time)

在html里使用則需要{{變量名}}接收

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
   時(shí)間是:{{var}},你好啊
</body>
</html>

界面展示:

列表元素

2.列表元素,當(dāng)然這個(gè)list可以隨便起名字,只要html對(duì)的上

@app.route('/')
def index():
    time = datetime.date.today()  # 普通元素
    names = ["哈哈", "喜喜", "dudu"]  # 列表元素
    return render_template("index.html", var=time, list=names)

html里循環(huán)list這樣使用:{% %}代表循環(huán)的開(kāi)始,{%endfor%}代表循環(huán)結(jié)束,這個(gè)語(yǔ)法是jinga2方式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
   時(shí)間是:{{var}},你好啊<br>
   跟您匹配的朋友有:<br>
   {% for data in list %}
       {{data}}
   {% endfor %}
</body>
</html>

結(jié)果:

 字典元素

定義task字典元素,看看html怎么操作

@app.route('/')
def index():
    time = datetime.date.today()  # 普通元素
    names = ["哈哈", "喜喜", "dudu"]  # 列表元素
    # html里循環(huán)names這樣使用,{% %}代表循環(huán)的開(kāi)始,{%endfor%}代表循環(huán)結(jié)束
    task={"task":"學(xué)習(xí)","time":"2小時(shí)"} # 字典元素
    return render_template("index.html", var=time, list=names,task=task)

這里用了table添加了兩行表格,表示行,表示列,第一行則是key鍵名稱所以循環(huán)得到key,第二行則為值,取到value

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
   時(shí)間是:{{var}},你好啊<br>
   跟您匹配的朋友有:<br>
   {% for data in list %}
      <li> {{data}}</li>
   {% endfor %}
   任務(wù):<br>
   <table border="1">
       <tr>
           {% for key,value in task.items() %}
              <td>{{key}}</td>
           {% endfor %}
       </tr>
        <tr>
           {% for key,value in task.items() %}
              <td>{{value}}</td>
           {% endfor %}
       </tr>
   </table>
</body>
</html>

運(yùn)行結(jié)果

1.13.2 input表單提交 

我們添加一個(gè)inputform接口,并返回一個(gè)register的html網(wǎng)頁(yè),這個(gè)表單網(wǎng)頁(yè)數(shù)據(jù)數(shù)據(jù)并提交就調(diào)用result接口,result接口里接收到頁(yè)面的表單信息并返回。

from flask import Flask, render_template,request
# 訪問(wèn)此接口返回表單頁(yè)面
@app.route('/inputform')
def inputform():
    return render_template("register.html")
# input表單界面提交時(shí)進(jìn)入的方法,方法方式為post
@app.route('/result',methods=['post'])
def result():
    # 通過(guò)request獲取用戶表單數(shù)據(jù),request.form返回的是字典信息
    if request.method=='POST':
        result = request.form
    return result

register.html網(wǎng)頁(yè)內(nèi)容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!-- action里最好不要寫(xiě)死地址,可以采用url_for使用,自動(dòng)幫你找到后臺(tái)方法,注意路由名和方法名一致,防止找不到 -->
<form action="{{ url_for('result') }}" method="post">
    <p>姓名:<input type="text" name="name"></p>
    <p>性別:<input type="text" name="gender"></p>
    <p>年齡:<input type="text" name="age"></p>
    <p>地址:<input type="text" name="address"></p>
    <p><input type="submit"></p>
</form>
</body>
</html>

啟動(dòng)并訪問(wèn)如下界面內(nèi)容:

 輸入完數(shù)據(jù)點(diǎn)擊提交,就會(huì)進(jìn)入后臺(tái)的result接口,后臺(tái)接口就會(huì)拿到表單數(shù)據(jù),

到此這篇關(guān)于Python-Web框架flask使用的文章就介紹到這了,更多相關(guān)Python-Web框架flask內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python動(dòng)態(tài)生成多維數(shù)組的方法示例

    Python動(dòng)態(tài)生成多維數(shù)組的方法示例

    這篇文章主要介紹了Python動(dòng)態(tài)生成多維數(shù)組的方法,涉及Python數(shù)組動(dòng)態(tài)遍歷、添加、打印等相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • python中如何使用正則表達(dá)式的集合字符示例

    python中如何使用正則表達(dá)式的集合字符示例

    我們都知道,正則表達(dá)式可以很方便地對(duì)字符串進(jìn)行匹配、查找、分割等操作,下面這篇文章主要給大家介紹了關(guān)于python中如何使用正則表達(dá)式的集合字符的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-10-10
  • python算法練習(xí)之抓交通肇事犯

    python算法練習(xí)之抓交通肇事犯

    這篇文章主要該大家分享python算法抓交通肇事犯得練習(xí),文章主要通過(guò)描述抓交通肇事犯得問(wèn)題然后確定程序框架將結(jié)果運(yùn)算出來(lái),下面來(lái)看詳細(xì)內(nèi)容吧,需要的朋友可以參考一下喲
    2021-10-10
  • Django-silk性能測(cè)試工具安裝及使用解析

    Django-silk性能測(cè)試工具安裝及使用解析

    這篇文章主要介紹了Django-silk性能測(cè)試工具安裝及使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python模塊psycopg2連接postgresql的實(shí)現(xiàn)

    Python模塊psycopg2連接postgresql的實(shí)現(xiàn)

    本文主要介紹了Python模塊psycopg2連接postgresql的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Pycharm導(dǎo)入anaconda環(huán)境的教程圖解

    Pycharm導(dǎo)入anaconda環(huán)境的教程圖解

    這篇文章主要介紹了Pycharm導(dǎo)入anaconda環(huán)境的教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Python基于回溯法子集樹(shù)模板解決取物搭配問(wèn)題實(shí)例

    Python基于回溯法子集樹(shù)模板解決取物搭配問(wèn)題實(shí)例

    這篇文章主要介紹了Python基于回溯法子集樹(shù)模板解決取物搭配問(wèn)題,簡(jiǎn)單描述了搭配問(wèn)題并結(jié)合實(shí)例形式分析了Python使用回溯法子集樹(shù)模板解決取物搭配問(wèn)題的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • Jupyter notebook如何實(shí)現(xiàn)指定瀏覽器打開(kāi)

    Jupyter notebook如何實(shí)現(xiàn)指定瀏覽器打開(kāi)

    這篇文章主要介紹了Jupyter notebook如何實(shí)現(xiàn)指定瀏覽器打開(kāi),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 解決pycharm安裝第三方庫(kù)失敗的問(wèn)題

    解決pycharm安裝第三方庫(kù)失敗的問(wèn)題

    這篇文章主要介紹了pycharm安裝第三方庫(kù)失敗的解決方法,本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Python爬蟲(chóng)實(shí)戰(zhàn)之網(wǎng)易云音樂(lè)加密解析附源碼

    Python爬蟲(chóng)實(shí)戰(zhàn)之網(wǎng)易云音樂(lè)加密解析附源碼

    讀萬(wàn)卷書(shū)不如行萬(wàn)里路,學(xué)的扎不扎實(shí)要通過(guò)實(shí)戰(zhàn)才能看出來(lái),本篇文章手把手帶你解析網(wǎng)易云音樂(lè)數(shù)據(jù),大家可以在實(shí)戰(zhàn)過(guò)程中更有效的掌握python
    2021-10-10

最新評(píng)論

卫辉市| 隆尧县| 巴彦县| 江安县| 武穴市| 鹤岗市| 曲周县| 宁远县| 嵊州市| 炉霍县| 呼和浩特市| 拉孜县| 汝南县| 仁化县| 砀山县| 句容市| 泽州县| 望江县| 扶绥县| 汉川市| 台北县| 普格县| 苍溪县| 湄潭县| 社旗县| 高陵县| 鄂托克旗| 常宁市| 云浮市| 酒泉市| 华阴市| 嵊泗县| 嘉义市| 普兰店市| 陆河县| 潢川县| 洛宁县| 浠水县| 高陵县| 常山县| 朝阳县|