一:認識路由:
(1):接受請求的類型:
@app.route('hello ',methods = ['GET ','POST'])
請求類型主要有兩種(常用):GET 和 POST ;
GET: 直接輸入的網址(url訪問的就是GET請求)
POST: 使用到表單(提交數據)
二、?GET 和 POST的區別:
類型 | 特點 | 常見用途 |
---|---|---|
得到 | 請求參數放在網址 URL 中;數據公開 | 查詢數據、打開網頁、搜索、跳轉等 |
郵政 | 請求參數放在請求體中;數據不顯示在 URL 中 | 表單提交(登錄、注冊、上傳文件)等 |
三:什么時候用 POST 請求?
常見使用 POST 的場景:
場景 | 示例 |
---|---|
用戶登錄 | 提交用戶名和密碼 |
注冊新用戶 | 提交用戶填寫的注冊信息 |
發表留言 | 提交留言內容 |
上傳文件 | 提交圖片、PDF 等 |
提交搜索表單 | 搜索內容較復雜時 |
?四:POST請求 實例:
1. 用戶登錄 / 注冊表單
<form method="POST" action="/login"><input name="username"><input name="password"><button type="submit">登錄</button>
</form>
2. 提交評論 / 留言 / 反饋表單
<form method="POST" action="/comment"><textarea name="content"></textarea>
</form>
3. 上傳文件(比如圖片、簡歷)
<form method="POST" enctype="multipart/form-data" action="/upload"><input type="file" name="photo">
</form>
4. 修改數據庫(如添加商品、發帖)
五:路由所匹配的url(用戶輸入的網址)重名會怎么樣?
@app.route('/xxx')
def func1():return "這是 func1"@app.route('/xxx')
def func2():return "這是 func2"
@app.route('/xxx')? ?就是如果兩個路由的‘/xxx’是一樣的情況下,會怎么樣:
(1):當訪問類型相同的時候,都為GET:
當你訪問 http://localhost:5000/xxx
,你會看到:
這是 func2
(2):訪問類型不同的時候
@app.route('/login', methods=['GET'])
def show_form():return '<form method="post">...</form>'@app.route('/login', methods=['POST'])
def process_form():return '處理登錄表單'
因為輸入的是地址,所以當然訪問到的會是第一個