Django实现简单的用户登录
(未连接数据库)最基础的模型
由于本人第一次写博客,不足之处还请大家多多指教。
昨天到现在学习了Django的一些基础,如加载静态文件,url传递参数,url命名以及反向解析等,这些以后都会在博客里陆续提到。
有了以上的基础以后,今天晚上就写了一个简单的登录模型,为后续连接数据库做做准备。
项目名–myshop
app名–zhihu(本人随便起的)
1.首先要配置两个urls.py文件,myshop下的urls.py配置如下:
注:这里由于只展示登录模块,先把不需要的注释掉
#from django.conf.urls import url
#from django.contrib import admin
from django.conf.urls import url, include
urlpatterns = [
#url(r'^admin/', admin.site.urls),
#url(r'^hello/',include('hello.urls')),
#通过项目名(zhihu)指向该项目下的urls.py
url(r'^zhihu/',include('zhihu.urls')),
]
zhihu下的urls.py配置如下:
from django.conf.urls import url
from . import views
urlpatterns=[
#前台登陆页面
url(r'^login/$', views.login, name='login'),
#登录验证
url(r'^do_login/$', views.do_login, name='do_login'),
]
2.然后配置zhihu下的views.py:
注:这里只是简单的对用户名和密码进行了验证
from django.shortcuts import render
from django.http import HttpResponse
#加载登录页面
def login (request):
return render(request,'zhihu/login.html')
# 验证登录
def do_login(request):
username = request.POST.get('username')
password = request.POST.get('password')
print(username+" "+password)
if username == 'admin' and password == '123456':
return render(request, 'zhihu/index.html')
else:
return render(request, 'zhihu/login.html', {
'username': username,
'password': password
})
3.下面是两个简单的页面login.html:
form标签中的action属性,action=”{% url ‘do_login’ %}”,这里指出了form表单要提交到zhihu中的views.py中的do_login方法去验证这个表单
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<div>
<form action="{% url 'do_login' %}" method="post">
{% csrf_token %}
<label for="username">用户名:</label>
<input id="username" type="text" name="username" value="{{ username }}"><br />
<label for="password">密码:</label>
<input id="password" type="password" name="password" value="{{ password }}"><br />
<input type="submit" value="登录">
</form>
</div>
</body>
</html>
index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>主页</title>
<body>
欢迎,{{ username }}
</body>
</html>
最后,我们来捋一遍思路:
1.首先在项目下的urls.py中配置路由,通过app名来指向到app下的urls.py继续进行路由 。
2.然后通过login来标识是个登陆页面,通过url(r’^login/$’, views.login, name=’login’),去执行app中的views.py的login方法。
3.然后
#加载登录页面
def login (request):
return render(request,'zhihu/login.html')
通过此方法讲login.html显示。
4.登录时, form标签中的action属性,action=”{% url ‘do_login’ %}” 提交到zhihu中的views.py中的do_login方法去验证这个表单 。
5.如果验证成功则显示主页,否则仍然返回登陆页面
# 验证登录
def do_login(request):
username = request.POST.get('username')
password = request.POST.get('password')
print(username+" "+password)
if username == 'admin' and password == '123456':
return render(request, 'zhihu/index.html')
else:
return render(request, 'zhihu/login.html', {
'username': username,
'password': password
})
总结,这个例子只是写了一个登陆的demo,需要改进的地方还很多,但简单易懂,适合刚刚学习而无从下手的人(本人就是)。后续会更新连接数据库后的登录,以及注册。