python_Django簡單的登入頁面
一、命題
是做一個有技術的黑盒測試,還是做一個黑盒測試,這個是一個為了帶Django初學者更容易認識這個框架的小例子
1.1偽造響應資訊
瀏覽器執行結果
二、建立
根據Django的MTV 模式,我們先輸入指令建立
app :python manage.py startapp cmdb
這裡的app意思就是程式模組
如圖我們建立的一個基礎框架
獲取更多的返回資訊request.environ
for k,v in request.environ.items():
print(k,v)
三、編寫
在templates 檔案下建立 login.html,寫一個表單提交
<form action="login" method="post">
<table>
<tr>
<td><label for="user">使用者名稱</label></td>
<td><input type="text" name="user" id="user"></td>
</tr>
<tr>
<td><label for="pwd">密碼</label></td>
<td><input type="password" name="pwd" id="pwd"></td>
<span style="background: red"></span>
</tr>
<tr>
<td ><input type="submit" value="提交"></td>
</tr>
</table>
</form>
我們現在J_Login檔案下的urls.py,寫上url的條件對映對應的處理函式
#引入邏輯處理模組
from cmdb import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
#建立對映關係
url(r'^login', views.login),
]
ulr的對映我們寫好後,開始寫使用者提交到頁面的程式碼邏輯處理,也就是在我們建立app模組下 views裡面寫。這裡的app模組指的是cmdb
from django.shortcuts import HttpResponse
from django.shortcuts import redirect
#建立url對應的函式對映
def login(request):
#判斷是否是POST 返回
if request.method == 'POST':
#接受 html name 是user和pwd的標籤
user = request.POST.get('user',None)
pwd = request.POST.get('pwd', None)
if user =='123' and pwd=='123' :
#重定向百度
return redirect('https://www.baidu.com')
#去讀index,通過HTTpResponse 方法返回檔案內容
with open('templates/index.html', 'rb' ) as f:
data =f.read()
f.close()
return HttpResponse(data)
上面的這種方式只是為了讓我們更加理解,工作原理,通過檔案的讀取,在頁面展示對應的讀取html,但實際生產生活中我們會用到下面這種,而不是用io來讀取展示 request.POST.get可以理解,去html找name名的標籤屬性{‘name’:‘user’}
下面是實際生產生活的寫法:
我們先在我們的提交表單的html加上一句話用{{}} 雙大括號 上
<span style="background: red">{{ msg }}</span>
改動我們的view
from django.shortcuts import render
from django.shortcuts import redirect
#建立url對應的函式對映
def login(request):
msg = ''
#判斷是否是POST 返回
if request.method == 'POST':
#接受 html name 是user和pwd的標籤
user = request.POST.get('user',None)
pwd = request.POST.get('pwd', None)
if user =='123' and pwd=='123' :
#重定向百度
return redirect('https://www.baidu.com')
else:
msg = '使用者名稱密碼錯'
return render(request, 'index.html',{'msg':msg})
#去讀index.html
return render(request,'index.html',{'msg':msg})
之前我們用HttpResponse,通過檔案的讀寫返回,這把我們用render方法直接返回對應頁面,而且render方法中,可用字典的方式向頁面返回我們提前用雙大括號在頁面做好的標記位置返回值,但這個前提是我們在settings.py 的設定檔案做了設定
四、提升
光寫一個沒有資料庫的登入沒意思,我們在寫一個頁面,可以進行不通過資料庫的假資料使用者新增
我們在templates 資料夾下建立一個home.html
<form action="home" method="post">
<input type="text" name='user' placeholder="使用者名稱">
<input type="text" name="pwd" placeholder="密碼">
<input type="submit">
</form>
{% for infos in user_info %}
<table>
<tr>
<td>使用者名稱</td>
<td>{{ infos.u}}</td>
</tr>
<tr>
<td>密碼</td>
<td>{{infos.p}}</td>
</tr>
</table>
{% endfor %}
在urls做關係對映
rom cmdb import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
#建立對映關係
url(r'^login', views.login),
url(r'^home', views.home),
]
編寫home方法的程式碼
USER_LIST =[{'user':'w','pwd':'123'}]
def home(request):
if request.method == 'POST':
u = request.POST.get('user',None)
p = request.POST.get('pwd',None)
temp = {'user':u, 'pwd':p}
USER_LIST.append(temp)
#返回字典在頁面展示
return render(request,'home.html',{'user_List':USER_LIST})
(二)、字典傳值
view 層
USER_DICT={
'k1':'v1',
'k2':'v2',
}
def test(request):
return render(request,'test.html',{'user_dict':USER_DICT})
templates 模組
<ul>
<!-字典.k 列印出來的是value->
{{ user_dict.k1 }}
<!-字典.value 字典.key 字典.items->
{% for k,v in user_dict.items %}
<li>
{{ k }}-{{v}}
</li>
{% endfor %}
</ul>
字典的迴圈方法 跟python 一樣有value , key, items
相關文章
- 簡單的網頁登入頁面網頁
- HTML基礎實現簡單的註冊和登入頁面HTML
- 登入頁面
- tkinter做一個簡單的登陸頁面(十六)
- 使用Vue.js和Element-UI做一個簡單的登入頁面Vue.jsUI
- jsp頁面表單不輸入卻能登入成功?JS
- 直播系統app原始碼,簡潔好看的登入頁面APP原始碼
- javaWeb登入註冊頁面JavaWeb
- 一個超級簡單易懂的使用者登入網頁網頁
- 【開發必備】單點登入,清除了cookie,頁面還保持登入狀態?Cookie
- 直播原始碼網站,新使用者登入時的註冊頁面和登入頁面原始碼網站
- 重定向到登入頁面後跳轉原頁面
- 自定義登入和登出頁面
- Luffy /4/ 多方式登入介面&登入註冊前端頁面前端
- CAS單點登入-簡介
- 使用Vue寫一個登入頁面Vue
- 用FishRedux完成一個登入頁面Redux
- jsp+servlet登入註冊頁面JSServlet
- bootstrap4登入註冊頁面boot
- Dcat-admin 自定義登入頁面
- laravel_admin 單一登入的簡單實現Laravel
- ssh免密登入簡單操作
- 根據使用者的不同登入不同的頁面
- WebForm登入頁面(連線資料庫)WebORM資料庫
- JSP(ajax)+Servlet實現簡單的登入功能JSServlet
- 簡單頁面開發神器——畫容
- 用Flutter 寫一個簡單頁面Flutter
- 用SwiftUI寫一個簡單頁面SwiftUI
- “登入”功能有哪些測試點?1000個登入頁面問題分析!
- PbootCMS登入後頁面載入緩慢怎麼辦boot
- 分享一個登入頁面基於Tailwind CSSAICSS
- 【網頁登入】QQ 登入、微信登入、微博登入、GitHub 登入網頁Github
- webscoket+jsp實現簡單的多人聊天頁面WebJS
- 使用WebSocket實現一個簡單的頁面聊天Web
- SSM專案搭建及實現簡單的登入SSM
- IdentityServer4網頁(單點)登陸入門IDEServer網頁
- SAPGUI系統登入頁面配置的SAProuter有什麼用GUI
- 更改wordpress的預設登入頁面名稱wp-login
- Flutter 入門與實戰(九):開發一個常用的登入頁面Flutter