Flask中傳遞引數詳解
1.get請求
request.args.get("key") 獲取get請求引數
2.post請求
request.form.get("key", type=str, default=None) 獲取表單資料
request.values.get("key") 獲取所有引數
# 引數解析物件生成
parser = reqparse.RequestParser()
args = parser.parse_args()
@app.route('/login',methods=["GET","POST"]) def login(): if request.method == "POST": # 以POST方式傳引數,通過form取值 # 如果Key之不存在,報錯KeyError,返回400的頁面 username = request.form['username'] password = request.form['password'] print username,password else: # 以GET方式傳引數,通過args取值 username = request.args['username'] print username return render_template('login.html', req_method=request.method)
傳遞引數:
傳遞引數的語法是:`/<引數名>/`。然後在檢視函式中,也要定義同名的引數。例如:
@app.route('/article/<string:test>/')
# 傳遞的引數名是test,因此就需要在函式的形參中定義同名的引數test
def test_article(test):
return 'test_article:{}'.format(test)
引數的資料型別:
1. 如果沒有指定具體的資料型別,那麼預設就是使用`string`資料型別。
2. `int`資料型別只能傳遞`int`型別。 限制引數:<int:article_id>,如果在瀏覽器中訪問:http://127.0.0.1:5000/p/11111.0/ 那就找不到報not found錯誤,因為我限制了是整形,你現在是浮點型,同理,如果你是浮點型,我使用 整形訪問,那就又訪問不到了
3. `float`資料型別只能傳遞`float`型別。
4. `path`資料型別和`string`有點類似,都是可以接收任意的字串, 但是`path`可以接收路徑,也就是說可以包含斜槓。
5. `uuid`資料型別只能接收符合`uuid`的字串。`uuid`是一個全宇宙都唯一的字串, 一般可以用來作為表的主鍵。
關於path資料型別,在主檔案中定義如下的程式碼:
@app.route('/article/<path:test>/') path資料型別
def test_article(test):
return 'test_article:{}'.format(test)
# 通過問號的形式傳遞引數,例如百度:http://127.0.0.1:5000/d/?wd=%E7%AE%80%E4%B9%A6&pn=20
@app.route('/d/')
def d():
wd = request.args.get("wd")
page_number = request.args.get("pn")
return "通過字串查詢的關鍵字為:{}, 頁碼為:{}".format(wd, page_number)
接收使用者傳遞的引數:
1. 第一種:使用path的形式(將引數嵌入到路徑中),就是上面講的。
2. 第二種:使用查詢字串的方式,就是通過`?key=value`的形式傳遞的。
@app.route('/d/')
def d():
wd = request.args.get('wd')
return '您通過查詢字串的方式傳遞的引數是:%s' % wd ```
3. 如果你的這個頁面的想要做`SEO`優化,就是被搜尋引擎搜尋到,那麼推薦使用第一種形式(path的形式)。 如果不在乎搜尋引擎優化,那麼就可以使用第二種(查詢字串的形式)。
檔案上傳
from werkzeug.utils import secure_filename
@app.route('/uploads', methods=['GET', 'POST'])
def uploads():
if request.method == "POST":
fe = request.files['files']
# basepath = os.path.dirname(os.path.abspath(__file__))
basepath = os.path.abspath(os.path.dirname(__file__))
upload_path = os.path.join(basepath, 'static', 'upload')
# f.filename可以拿到檔名,但是是客戶端定義的名,不要相信這個名稱,用secure_filename包裝一下
fe.save(upload_path+'/'+secure_filename(fe.filename))
# 這裡的url_for 和jinja的前端用法不一樣,可以忽略.的引用
# url_for重定向
return redirect(url_for('uploads'))
return render_template('upload.html')
cookie設定
@app.route('/index')
def index():
response = make_response(render_template('index.html',title='Index'))
reqparse.set_cookie('username', '')
return response
自定義錯誤頁面
from flask import abort
@app.errorhandler(404)
def page_not_not_found(error):
return render_template('404.html'), 404
相關推薦
Flask中傳遞引數詳解
1.get請求 request.args.get("key") 獲取get請求引數 2.post請求 request.form.get("key", type=str, default=None) 獲取表單資料 request.values.get("key") 獲取
FFMPEG進階系列03-ffmpeg轉碼專題(中)x264引數詳解
概述 x264編碼引數簡介 版本 x264.exe --fullhelp 列印 x264 core:152 r2851 ba24899 Syntax: x264 [options] -o outfile infile Presets(預設) 用於簡化命令列而
struts2中result引數詳解
1.result中name的引數: SUCCESS:Action正確的執行完成,返回相應的檢視,success是name屬性的預設值; NONE:表示Action正確的執行完成,但並不返回任何檢視; ERROR:表示Action執行失敗,返回到錯誤處理檢視; I
caffe中網路結構引數詳解
prototxt檔案是caffe的配置檔案,用於儲存CNN的網路結構和配置資訊。prototxt檔案有三種,分別是deploy.prototxt,train_val.prototxt和solver.prototxt。 1. solver.prototxt solver.prototxt是caffe的配置檔
JNI原生函式中JNIEnv引數詳解
JNIEXPORT jstring JNICALL Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv *env,jobject thiz) 原生程式碼通過JNIEnv介面指標提供的各種函式來使
Histogram中各個引數詳解
histogram從不會到理解的過程: 1.我想先從讀取histogram的bins的方法說起.(Mat hist,假設已經過calchist()) 首先 Mat型別的hist,他的維數是dims的,這就決定了,Mat hist中每個bins的存放形式.如果dim
ThreadPoolExecutor中的引數詳解
1. ThreadPoolExecutor資料成員 1 Private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING,0));
C++中陣列引數詳解
// 引數為10個int的陣列// parameter is a reference to an array of 10 intsvoid putValues(int (&arr)[10]);int main(){ int i, j[2]; int a[10]; putValue
pthread_create函式的詳細講解(包括向執行緒函式傳遞引數詳解)
pthread_create是UNIX環境建立執行緒函式 標頭檔案 #include<pthread.h> 函式宣告 int pthread_create(pthread_t*restrict tidp,const pthread_attr_t
學習筆記--JDK中的URLConnection引數詳解
JDK中的URLConnection引數詳解 針對JDK中的URLConnection連線Servlet的問題,網上有雖然有所涉及,但是隻是說明了某一個或幾個問題,是以FAQ的方式來解決的,而且比較零散,現在對這個類的使用就本人在專案中的使用經驗做如下總結: 1:>
linux中mount命令引數詳解 nfs 引數
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
java中的值傳遞和引用傳遞用法詳解
值傳遞:方法呼叫時,實際引數把它的值傳遞給對應的形式引數,方法執行中形式引數值的改變不影響實際參 數的值。 引用傳遞:也稱為傳地址。方法呼叫時,實際引數的引用(地址,而不是引數的值)被傳遞給方法中相對應的形式引數,在方法執行中,對形式引數的操作實際上就是對實際引數的
ajax中error函式引數詳解
xhr.status和error函式中的status是不一樣的,error函式中的status主要包括:"success"、"notmodified"、"error"、"timeout"、"parsererror",而xhr.status如下所講。 一
requests.post()方法中的data、json引數詳解
json和dict python中的dict型別要轉換為json格式的資料需要用到json庫: import json <json> = json.dumps(<dict>) <dict> = json.loads(<json&
angular6 中angular.json中引數詳解
其實我覺得配置項這個東西應該是很簡單的,畢竟是配置項,引數拿過來抄一下就行了.又不是寫什麼樣式寫什麼邏輯的 但是吧,居然還真的在百度上找不到什麼能看的東西,尤其是我現在升級到angular6,網就真的找不到什麼能看的東西了,於是乎,這個看著感覺隨便抄抄的內容讓我
InputStream中mark方法readlimit引數詳解
InputStream中mark方法readlimit引數詳解 mark(int readlimit); 網上給出的解釋: /***************************************************************/ readlimit 引數給
C#中static void Main(string[] args) 引數詳解
1 using System; 2 3 namespace DemoMainArgs 4 { 5 class Program 6 { 7 /// <summary> 8 /// 應用程式入口 9 /// <
ASP.NET 中 OutputCache 指令引數詳解
使用@ OutputCache指令使用@ OutputCache指令,能夠實現對頁面輸出快取的一般性需要。@ OutputCache指令在ASP.NET頁或者頁中包含的使用者控制元件的頭部宣告。這種方式非常方便,只需幾個簡單的屬性設定,就能夠實現頁面的輸出快取 策略。@ OutputCache指令宣告程式碼如
Linux中top命令引數詳解
本篇博文主要講解有關top命令,top命令的主要功能是檢視程序活動狀態以及一些系統狀況。 TOP是一個動態顯示過程,即可以通過使用者按鍵來不斷重新整理當前狀態.如果在前臺執行該命令,它將獨佔前臺,直到使用者終止該程式為止.比較準確的說,top命令提供了實時的對
PHP中的預定義變數$_SERVER引數詳解
在PHP編碼中,經常遇到需要使用位址列的資訊,比如域名、訪問的URL、URL帶的引數等,這些資訊PHP伺服器都存在了預定義變數$_SERVER中。文件解釋:$_SERVER 是一個包含了諸如