继续上一次进行网页开发
一、为网页增加登录功能
1.在urls.py增加要跳转的页面及函数
urlpatterns = [
# path('admin/', admin.site.urls),
path('login/', views.login),
path('index/', views.index),
]
2.在views中增加登录函数
提示:这里就是把用户名密码在代码写定了,只有使用root和123才可以登录,初步暂定这样,以后完善了可以在数据库中建立用户账号密码表,根据表格来进行登录判定。 (1)如果获取到网页的method为post,就设置通过submit标签获取文本框输入的账号和密码:
if request.method == 'GET':
return render(request, 'login.html')
# 如果是POST请求,获取用户提交的数据
# print(request.POST)
username = request.POST.get("username")
password = request.POST.get("password")
(2)判断登录的账号和密码是否正确,如果正确,跳转到主页index.html:
if username == 'root' and password == '123':
# return HttpResponse('登录成功')
return render(request, 'index.html')
# return HttpResponse('登录失败')
return render(request, 'login.html', {'error_msg': '用户名或密码错误!'})
3.错误解决办法
Forbidden (403) CSRF verification failed. Request aborted. 这是django自带的问题 解决办法: 在html当前中增加{% csrf_token %}
<form method="post" action="/login/">
{% csrf_token %}
<input type="text" name="user" placeholder="用户名">
<input type="password" name="pwd" placeholder="密码">
<input type="submit" value="提交"/>
<span style="color: red; "> {{ error_msg }} </span>
</form>
4.后续
下一步就是把自己要的网页一个一个写进去,我自己是习惯先把html放到templates下,然后在url.py写path,然后写views.py对应的函数,最后调网页的css 这里遇到一个需要注意的小细节,就是html中的herf指向的是url中path的地址,这两个必须要一一对应:
html中:
<a href="/devices/all/" target="right">
<li>所有资产</li>
</a>
url.py中:
path('devices/all/', views.devices_all),
总结
以上就是今天要讲的内容,暂时没有遇到别的问题,遇到再进行记录。
|