日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

web开发——Flask框架

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web开发——Flask框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??其實我也不是很懂這個東西,但這次做的過程中有了一個簡單的了解。還是寫一篇總結一下吧!
??Flask框架可以做什么?/為什么要用Flask框架?
??Flask本身是一個輕量級的web開發框架,在web開發中難免需要進行服務器和用戶之間的交互。Flask框架可以使我們只專注于功能邏輯的實現,隱藏掉服務器和用戶的交互過程(flask幫你去完成)。之所以稱Flask是一個輕量級的原因是Flask中只有兩個模塊:werkzeug(路由模塊)、jinja2(模板模塊)。雖然輕量但卻功能強大,可以理解為Flask只是一個內核,可以增加各種擴展包來增加功能。

??Flask最基本的框架代碼是這樣的(在python的情況下,其余的我也不會~):

# 1.導入flask相關擴展 from flask import Flask等# 2.創建flask應用實例,傳入_name_,以確定資源路徑 app = Flask(__name__)# 3.定義路由及視圖函數 @app.route(/) // 默認有GET # @app.route(/’, method=[GET,POST])增加請求,如果有按鍵的話要加上 def index():return “目標頁面(.html)”# 如果要傳參數,要用return render_template("目標頁面(.html)", 傳遞參數變量)#4.啟動程序 If __name__ == ‘__main__’:app.run()

??下面介紹一些我經常用的一些flask語法:

??1.路由路徑問題(也就是@app.route(‘路徑’))

????明白這個問題,瞬間就知道flask是如何工作的了!如果在主機上運行的話,默認路由就是127.0.0.1(也就是默認路由:/)后面可以自己設置路徑。當我們在html中利用鏈接進行跳轉時,如果跳轉的路徑和flask中指定的路徑相同就會進入對應視圖函數。舉個例子:在html中設置一個按鍵作為鏈接,鏈接的目標路徑是/hello。當按鍵按下的時候,主函數中@app.route(‘/hello’)就會收到消息,接下來就該執行屬于該路徑下的視圖函數了~

??2.跳轉界面問題

????前面說了路由問題,那如何在對應路由下導入指定的html文件呢?這就是retuen的作用。在視圖函數的最后,加上return某個HTML文件,那么這些邏輯操作就會基于這個HTML文件來完成

??3.按鍵問題

????界面設計中按鍵經常用到。Flask中對于按鍵動作的讀取是通過方法(method)POST檢測的,進入頁面的時候已經默認了方法(method)GET。因為不是默認,所以必須要指定,使用模板如下:

@app.route('/', methods = ['GET','POST']) def index():if (request.method == 'POST'):do_something# return "xxx" 如果涉及兩個HTML的話這里可以加一個return "xxx"

??4.變量傳遞

????這個變量傳遞指的是主函數和HTML文件之間的值傳遞,傳遞的方式是通過return來實現(底層是通過jinja2)。在需要有參數傳遞(可多個參數)的時候就不能簡單的return網頁文件了。需要用下面這個:

return render_template("目標頁面(.html)", 傳遞參數變量1,傳遞變量參數2)

????有一個習慣就是兩個變量的命名一致,就像下面這樣傳遞參數hello。這里面的參數可以是任意結構(字符/類/整形等)

return render_template("目標頁面(.html)", hello=hello)

??在HTML中使用通過雙中括號加變量名的形式:

{{ hello }}

?? 5.HTML中控制代碼塊(for/if)方法:

{% for xx in xx%}Do_something {% endfor %} // endfor要連在一起{% if xx in xx%}Do_something {% endif %}

??6.一些簡單的用戶交互模塊(FlaskFrom表單):

????指的是輸入、按鍵。因為一些界面的需求,這里的輸入還分成字符輸入和密碼輸入(不是明文顯示,用小黑點兒代替)。直接上用法:

# 所有的都需要進行導入,介紹兩個比較常用的: # StringField是普通字符輸入 PasswordField是密碼輸入 SubmitField是按鈕 from flask import Flask, url_for, redirect, render_template, request, flash from flask_wtf import FlaskForm from wtforms import StringField, PasswordField, SelectField, SubmitField from wtforms.validators import DataRequired, EqualTo '''對于每次使用使用可以聲明一個類,然后整個傳遞過去:u后面的就是要顯示的文字,因為有的編碼要求,validators=[DataRequired()]是判斷是否符合輸入的要求。render_kw就是為了placeholder的使用。根據需求特點選擇對應種類就行了 ''' class LoginForm(FlaskForm):ID_Card = StringField(u'身份證號:', validators=[DataRequired()], render_kw={"placeholder": "身份證號"})name = StringField(u'姓名:', validators=[DataRequired()], render_kw={"placeholder": "姓名"})check = SubmitField(u'查詢') @app.route('/', methods = ['GET','POST']) def index():login_form = LoginForm()if (request.method == 'POST'):if login_form.validate_on_submit(): #這句就是判斷是否提交有效地if login_form.check.data: #這是第二種判斷按鈕被點擊的方式,有時候用這個更好一點

????另外小白可能疑惑啥是placehold,就像這個樣子,內容隱含在方框里,輸入的時候就會消失,只體現一個提示作用,如下圖的身份證號和姓名:

????有個事情明確一下,在html中都知道輸入input,也有各種type。其實就是flask做一個封裝,等真正在界面上顯示的時候,變量會被重新解析成input的。同時如果有了StringField,必須要輸入,否則就無法繼續進行按鈕操作(我也不知道為啥~)

??flask還有一個flash的部分,可以用于提示,一刷新就沒有了,在主函數中flash(‘內容’)即可。但在HTML中需要一段專用代碼做顯示:

<!--對于flash的使用要用如下一個循環,它有緩沖區-->{% for message in get_flashed_messages() %}{#對于顯示文字的樣式可以用style來改變,style有color參數用于改變顏色#}<div class=flash style="color: rgb(255,0,0)")>{{ message }}</div>{% endfor %}

??當然Flask的內容遠不止如此,但我就不會了~

??留一些資料,供Flask的學習:

??視頻學習資料:https://b23.tv/rd8SN3
??window10安裝flask:https://blog.csdn.net/fuyouzhiyi/article/details/105545210

總結

以上是生活随笔為你收集整理的web开发——Flask框架的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。