Python實(shí)現(xiàn)注冊(cè)登錄系統(tǒng)
表單在網(wǎng)頁(yè)中主要負(fù)責(zé)數(shù)據(jù)采集功能。一個(gè)表單有三個(gè)基本組成部分: 表單標(biāo)簽:這里面包含了處理表單數(shù)據(jù)所用CGI程序的URL以及數(shù)據(jù)提交到服務(wù)器的方法。 表單域:包含了文本框、密碼框、隱藏域、多行文本框、復(fù)選框、單選框、下拉選擇框和文件上傳框等。 表單按鈕:包括提交按鈕、復(fù)位按鈕和一般按鈕;用于將數(shù)據(jù)傳送到服務(wù)器上的CGI腳本或者取消輸入,還可以用表單按鈕來(lái)控制其他定義了處理腳本的處理工作。而在HTML里面,在地址欄輸入一個(gè)URL然后打開(kāi),這樣發(fā)送的是一個(gè)get請(qǐng)求,若是要使用POST請(qǐng)求,就需要使用表單了。
HTML中的表單就是由form的標(biāo)簽來(lái)聲明的,舉個(gè)栗子:
<form action="login" method="post"> <label>username:</label> <input type="text" name="username"><br /> <label>password:</label> <input type="password" name="password"><br /> <input type="submit" name="submit"> <form>
上面代碼中,由form標(biāo)簽包含的部分便是表單的內(nèi)容,其中關(guān)注其中的input部分,這個(gè)表單中有三個(gè)input,一個(gè)是text類(lèi)型的,代表普通的文本輸入,一個(gè)是password類(lèi)型的,代表密碼輸入,一個(gè)是submit類(lèi)型的,是一個(gè)提交的按鈕;form標(biāo)簽定義了兩個(gè)屬性,一個(gè)是action,代表這個(gè)表單提交的路徑,一個(gè)是method,代表這個(gè)表單提交的方法,缺省為GET。接下來(lái)詳細(xì)說(shuō)明一下上述例子的具體過(guò)程,當(dāng)用戶(hù)點(diǎn)下submit的按鈕的時(shí)候,這時(shí)候?yàn)g覽器就向action的路徑發(fā)送了一個(gè)POST請(qǐng)求,請(qǐng)求的內(nèi)容是下面這個(gè)樣子的
data = {
'username':'XXXXXXXX',
'password':'XXXXXXXX'
}
就是將各個(gè)除了submit之外的input的name作為key值,實(shí)際填寫(xiě)的數(shù)據(jù)作為value值作為數(shù)據(jù)包,發(fā)送了一個(gè)POST請(qǐng)求,當(dāng)然,如果吧method改為get的話(huà),那么發(fā)送的就是GET請(qǐng)求了。接下來(lái),服務(wù)器所接收到的的請(qǐng)求數(shù)據(jù)就跟從客戶(hù)端程序那邊發(fā)過(guò)來(lái)的數(shù)據(jù)是一樣的了,接下來(lái)就是根據(jù)發(fā)送過(guò)來(lái)的數(shù)據(jù),做對(duì)應(yīng)的處理然后返回了。
有了上述知識(shí)之后,我們就開(kāi)始做一個(gè)簡(jiǎn)單的注冊(cè)登錄系統(tǒng)。我們做的注冊(cè)登錄系統(tǒng)是有注冊(cè)功能和登錄功能,注冊(cè)后服務(wù)器將注冊(cè)信息存儲(chǔ)到本地,登錄時(shí)驗(yàn)證注冊(cè)消息是否正確。web.py里面有一些template里面已經(jīng)有了一些支持,具體代碼如下:
# -*- coding: cp936 -*-
import web
import os
urls = (
'/', 'hello',
'/login', 'login',
'/regist', 'regist'
)
app = web.application(urls, globals())
class hello:
def __init__(self):
self.render = web.template.render('templates/')
def GET(self):
return self.render.form()
class login:
def POST(self):
para = web.input()
username = para['username']
password = para['password']
#TODO:...
#if authenticate(username,password):
#return render.hello(username)
return 'hello world'
class regist:
def GET(self):
return 'hello world'
#return self.render.form()
def POST(self):
para = web.input()
username = para['username']
password = para['password']
#TODO:...
return 'hello world'
if __name__ == '__main__':
app.run()
運(yùn)行效果如下挫圖:想要自己搞得美觀(guān)一點(diǎn),可以自己找一些相關(guān)資料!這個(gè)實(shí)現(xiàn)的就是輸入密碼,返回值。你可以看到?jīng)]有本地保存,是的,這就是給你在TODO那里留的坑!然后密碼匹配什么的把上面的login類(lèi)那里的注釋去掉即可!

隨便輸入用戶(hù)名密碼可得:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 用Python實(shí)現(xiàn)web端用戶(hù)登錄和注冊(cè)功能的教程
- Python登錄注冊(cè)驗(yàn)證功能實(shí)現(xiàn)
- Python實(shí)現(xiàn)注冊(cè)、登錄小程序功能
- Python制作簡(jiǎn)易注冊(cè)登錄系統(tǒng)
- Python +Selenium解決圖片驗(yàn)證碼登錄或注冊(cè)問(wèn)題(推薦)
- python實(shí)現(xiàn)登錄與注冊(cè)系統(tǒng)
- Python3 Tkinkter + SQLite實(shí)現(xiàn)登錄和注冊(cè)界面
- python應(yīng)用文件讀取與登錄注冊(cè)功能
- Python?+?Tkinter連接本地MySQL數(shù)據(jù)庫(kù)簡(jiǎn)單實(shí)現(xiàn)注冊(cè)登錄
- Python實(shí)現(xiàn)用戶(hù)登錄注冊(cè)
相關(guān)文章
Python基于pygame實(shí)現(xiàn)的彈力球效果(附源碼)
這篇文章主要介紹了Python基于pygame實(shí)現(xiàn)的彈力球效果,涉及pygame圖形動(dòng)態(tài)操作的相關(guān)的技巧,并附帶了完整的源碼供讀者下載參考,需要的朋友可以參考下2015-11-11
Python 使用folium繪制leaflet地圖的實(shí)現(xiàn)方法
今天小編就為大家分享一篇Python 使用folium繪制leaflet地圖的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
pandas pd.read_csv()函數(shù)中parse_dates()參數(shù)的用法說(shuō)明
這篇文章主要介紹了pandas pd.read_csv()函數(shù)中parse_dates()參數(shù)的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
使用Python分析文本數(shù)據(jù)的詞頻并詞云圖可視化
這篇文章主要給大家介紹了關(guān)于如何使用Python分析文本數(shù)據(jù)的詞頻并詞云圖可視化,文章中有詳細(xì)的圖文介紹和代碼示例,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-09-09
Python Opencv實(shí)現(xiàn)圖像輪廓識(shí)別功能
這篇文章主要為大家詳細(xì)介紹了Python Opencv實(shí)現(xiàn)圖像輪廓識(shí)別功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
python?函數(shù)定位參數(shù)+關(guān)鍵字參數(shù)+inspect模塊
這篇文章主要介紹了python?函數(shù)定位參數(shù)+關(guān)鍵字參數(shù)+inspect模塊,文章圍繞主題展開(kāi)詳細(xì)的相關(guān)資料,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05

