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
- HTML基礎實現簡單的註冊和登入頁面HTML
- 使用Vue.js和Element-UI做一個簡單的登入頁面Vue.jsUI
- java登入表單如何放置到php頁面?JavaPHP
- 簡單的使用者登入頁面與後臺資料庫的互動資料庫
- JS_簡單實現頁面輸入JS
- 直播系統app原始碼,簡潔好看的登入頁面APP原始碼
- jsp頁面表單不輸入卻能登入成功?JS
- 改造CAS單點登入 --- 自定義登陸頁面(客戶端)客戶端
- 登入一個簡單的網頁進行的操作網頁
- javaWeb登入註冊頁面JavaWeb
- 登入頁面使用ReactiveCocoaReact
- jquery登入頁面效果圖jQuery
- Vue-router實現單頁面應用在沒有登入情況下,自動跳轉到登入頁面Vue
- 直播原始碼網站,新使用者登入時的註冊頁面和登入頁面原始碼網站
- 【開發必備】單點登入,清除了cookie,頁面還保持登入狀態?Cookie
- 自定義登入和登出頁面
- Web頁面中的“門”—Web端登入頁的設計Web
- Luffy /4/ 多方式登入介面&登入註冊前端頁面前端
- 用FishRedux完成一個登入頁面Redux
- 使用Vue寫一個登入頁面Vue
- 遠端無法登入管理頁面
- bootstrap4登入註冊頁面boot
- 一個超級簡單易懂的使用者登入網頁網頁
- java實現簡單的單點登入Java
- ubuntu16.04登入後黑屏再次回到登入頁面Ubuntu
- 頁面除錯神器Reveal的簡單使用除錯
- Dcat-admin 自定義登入頁面
- WebForm登入頁面(連線資料庫)WebORM資料庫
- jsp+servlet登入註冊頁面JSServlet
- [譯] 使登入頁面變得正確
- 更快速、更精簡的頁面重新載入
- CAS單點登入-簡介
- 用SwiftUI寫一個簡單頁面SwiftUI
- 用Flutter 寫一個簡單頁面Flutter
- 簡單頁面開發神器——畫容
- PbootCMS登入後頁面載入緩慢怎麼辦boot