?? 推薦關(guān)注我的另一個專欄系列:大道至簡,該系列收錄了許多優(yōu)質(zhì)的人工智能算法博文,包括機器學(xué)習(xí)和自然語言處理等,持續(xù)更新中,歡迎各位關(guān)注~
?
介紹完P(guān)ython-web開發(fā)學(xué)習(xí)筆記(2)--- HTML基礎(chǔ)_尚拙謹言的博客-CSDN博客,我們來搞一個簡單的網(wǎng)站小案例,帶大家更進一步理解HTML網(wǎng)頁和web框架之間是怎么運作的,本篇以做一個簡單的注冊頁面為例。
目錄
1. 網(wǎng)站運行簡要描述
2. 網(wǎng)站開發(fā)小案例—Flask
(1)安裝flask
(2)在pycharm中新建項目
(3)新建一個注冊賬戶的頁面
(4)編寫flask代碼
(5)用戶注冊,提交注冊數(shù)據(jù)
1. 網(wǎng)站運行簡要描述
瀏覽器通過我們用戶進行的一些操作,向后臺發(fā)起請求,后臺接收到請求后,會解析請求字段,根據(jù)字段對應(yīng)的要求,執(zhí)行對應(yīng)的功能模塊(例如執(zhí)行def xxx方法),并將執(zhí)行結(jié)果返回到某個HTML文件中,后臺接收到返回后,會作為請求的響應(yīng)返回給瀏覽器,響應(yīng)中包含了一堆HTML標簽,瀏覽器接收到響應(yīng)后,會解析這一堆HTML標簽,并在瀏覽器頁面上展示給用戶。
2. 網(wǎng)站開發(fā)小案例—Flask
在寫案例之前,我們首先要大體認識一下什么是web框架。說白了,我們和瀏覽器的交互過程中,會存在大量的瀏覽器與后臺服務(wù)中心的交互、后臺服務(wù)中心與數(shù)據(jù)庫的交互、傳輸數(shù)據(jù)的處理、數(shù)據(jù)的傳輸、數(shù)據(jù)的格式化、網(wǎng)址的解析、網(wǎng)址的映射等一系列復(fù)雜的過程,這些復(fù)雜的過程大多數(shù)并不需要我們開發(fā)人員去操作,開發(fā)人員更多的精力應(yīng)該放在服務(wù)的設(shè)計、頁面的編寫、庫表的設(shè)計、功能模塊的開發(fā)、API的設(shè)計等,那其它的復(fù)雜過程,就需要交由web框架來處理了,也就是我們是在web框架上進行我們的功能開發(fā)。python領(lǐng)域常見的web框架有flask,Django。還有Java領(lǐng)域的Spring等。
本文為了方便,使用輕量級的flask框架進行案例的設(shè)計,快速制作一個簡單的實現(xiàn)注冊賬戶的web服務(wù)。話不多說,上手:
(1)安裝flask
pip install flask
(2)在pycharm中新建項目
我這里命名一個.py文件:flask_demo.py
(3)新建一個注冊賬戶的頁面
我這里新建一個register.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用戶注冊</title>
</head>
<body>
<h1>用戶注冊</h1>
<form method="post" action="/register">
<div>
用戶名:<input type="text" name="user"/>
</div>
<div>
密碼:<input type="password" name="pwd"/>
</div>
<div>
性別:
<input type="radio" name="gender" value="1">男
<input type="radio" name="gender" value="2">女
</div>
<div>
愛好:
<input type="checkbox" name="hobby" value="10">看書
<input type="checkbox" name="hobby" value="20">打球
<input type="checkbox" name="hobby" value="30">唱歌
<input type="checkbox" name="hobby" value="40">旅游
</div>
<div>
城市:
<select name="city">
<option value="bj">北京</option>
<option value="sh">上海</option>
<option value="sz">深圳</option>
</select>
</div>
<div>
備注:<textarea name="more"></textarea>
</div>
<input type="submit" value="submit按鈕-注冊">
</form>
</body>
</html>
以上HTML各標簽的含義我在之前的文章中都講過,大家可以到本文同屬專欄中去翻看哈~這里不再贅述。上述代碼運行后效果如下:
(4)編寫flask代碼
from flask import Flask, render_template, request
# 給自己的項目取個名字,這里__name__意味著使用當前項目的名字
app = Flask(__name__)
# 為自己的服務(wù)定義一個接口名,該接口需拼接在URL后面,方可訪問http服務(wù)
@app.route('/register', methods=['GET', "POST"])
def register():
if request.method == "GET":
return render_template('register.html')
else:
user = request.form.get("user")
pwd = request.form.get("pwd")
gender = request.form.get("gender")
hobby_list = request.form.getlist("hobby")
city = request.form.get("city")
more = request.form.get("more")
print(user, pwd, gender, hobby_list, city, more)
# 通常,我們會實現(xiàn)一個將上述用戶注冊信息寫入數(shù)據(jù)庫中實現(xiàn)注冊
# 待上述一切執(zhí)行完畢后,我們需要給用戶返回結(jié)果
return "注冊成功!" # 在真正業(yè)務(wù)場景中,此處返回的一般都會是HTML文件,即return render_template('xxx.html')
if __name__ == '__main__':
# 運行啟動web服務(wù),持續(xù)監(jiān)聽用戶端發(fā)起的請求
app.run()
執(zhí)行上述代碼后,你將會看這樣的結(jié)果:
出現(xiàn)上圖中的樣子,說明你的web后臺服務(wù)啟動起來了。上圖中第一行的“flask_demo”就是代碼中定義的app名稱“__name__”,名稱自己隨便定義。上圖中的IP地址,是我們要訪問注冊頁面的地址,注意地址后面必須拼接上我們定義的接口名稱“/register”,現(xiàn)在我們可以通過該URL在瀏覽器中打開注冊頁面了:
(5)用戶注冊,提交注冊數(shù)據(jù)
現(xiàn)在我們要填寫注冊信息了:
接著我們點擊submit按鈕,看下啥效果:
返回了一個“注冊成功”,這是我們代碼里return的內(nèi)容。僅僅如此嗎?再看下圖:
最上頭倆404的GET我們不管它??聪旅嬉粋€GET和一個POST,GET是因為我們通過URL進入了注冊頁面,此時為GET請求方式。POST是因為我們提交了注冊信息,此時為POST請求方式,之前說過,POST一半多用于表單的提交,而且請求信息不會體現(xiàn)在URL上,那么體現(xiàn)在哪兒?就是上圖最下面那一行,就是我們提交的注冊信息,也就是說,POST請求的信息,會記錄在后臺服務(wù)中,當然,上圖的信息并不是瀏覽器的用戶能夠看到的,而是服務(wù)端的你能夠看到的。
溫馨提示:了解了http服務(wù)運行機制后,大家就知道,千萬不要在陌生頁面輸入自己的敏感信息,人家后臺可都記著呢!文章來源:http://www.zghlxwxcb.cn/news/detail-462214.html
至此,一個簡易的網(wǎng)站小案例制作完成,希望通過本文,大家能夠?qū)W(wǎng)站運行機制有一個更為清晰的認識。有幫助的話,記得點贊+關(guān)注哦!文章來源地址http://www.zghlxwxcb.cn/news/detail-462214.html
到了這里,關(guān)于Python-web開發(fā)學(xué)習(xí)筆記(3):Flask Demo,一個網(wǎng)站開發(fā)小案例的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!