需求:
1.将用户名保存在cookie中
2.登录完以后
3.然后跳转到主页 将用户名显示在主页上
根据这个需求,可以整理出大概思路,先创建出url,再根据url里的defunctions完成页面的跳转,具体代码如下。
第一步:
创建url,项目中的url文件中和应用中的url文件分别写上名字:
项目中的url:
from django.conf.urls import url, include
urlpatterns = [
url(r'^app/', include('app.urls',namespace='app')),
]
应用中的url:
from django.conf.urls import url
from django.contrib import admin
from app import views
urlpatterns = [
url(r'^login/', views.login),
url(r'^dologin/', views.dologin,name='dologin'),
url(r'^index/',views.index),
url(r'^delcookie/',views.delcookie),
第二步:
1.在视图文件中创建出对应的defunctions
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
def login(request):
return render(request,'login.html')
def dologin(request):
#表单中的method模式是post,所以这里的获取方式为POST
username = request.POST.get('username')
response = HttpResponse('登录成功')
#cookie,浏览器的会话技术,它能够保证我们在有效期内 ,访问同一个web服务器时 ,
产生比较好的体验,比如 自动登录操作
# response.set_cookie('username',username,max_age=3600)
#由于cookie在传递重要信息时并不安全,这里使用session,服务器的会话技术
request.session['username']=username
return response
def index(request):
#cookie如何获取参数
# username = request.COOKIES.get('username')
#session如何获取参数
username = request.session.get('username')
context = {'username':username}
return render(request,'index.html',context=context)
#如果想删除cookie,在浏览器中执行delcookie即可
def delcookie(request):
request.session.flush()
return HttpResponse('session清除成功')
2.再创建出function中对用的html文件
‘login.html’
<form action="{% url 'app:dologin' %}" method="post">
{% csrf_token %}
<input type="text" name="username">账户:
<br>
<input type="password" name="pwd">密码:
<input type="submit" value="提交">
</form>
‘index.html’
欢迎来到{{ username }}联盟
总结
创建完以上的url和视图函数,终端运行后,即可在浏览器中完成简单的django的登陆操作