2018-09-10-Python全栈开发day53-django-ADMIN/session
1.admin介绍
admin是django提供的管理面板
前置作业
在setting中设置数据库种类为mysql,
在init中引入pymysql模块
在数据库中创建表
创建超级管理员
2.将app注册到admin面板进行管理
class Bookadmin(admin.ModelAdmin): list_display = ('name','price','pub_date')#在admin中显示的 admin.site.register(Book,Bookadmin) 在admin中写一个类,
设置数据为可快速修改
class Bookadmin(admin.ModelAdmin): list_display = ('id','name') list_editable = ('name',)#将name设置为可以直接修改 # filter_horizontal = ('name',) list_per_page = 1#每页显示内容 search_fields = ('id',)#通过id进行搜索 list_filter = ('name','id')#右侧增加筛选项,可以进行筛选 admin.site.register(Book,Bookadmin)
3.django,admin中特有设置
blank==可以为空 fieldsets = ( (None, { 'fields': ('name','id') }), ('Advanced options', { 'classes': ('collapse',), 'fields': ('price',) }), ) fieldsets是一个二元的元组组成的对内容的筛选,上面一个元组为显示内容,后面一个元组内默认显示样式和折叠内容
4.cookie和session
cookie的功能:当客户端访问服务端的时候,服务端会给客户端一串键值对,存在客户端本地,当下一次客户端访问服务端时会带上这个键值对进行访问,服务端识别之后,会自动显示相应状态。
只有带有特定cookie的人才能进入。
session功能:因为cookie放在客户端的硬盘上不安全,所以当客户端访问服务端的时候,会将客户端的信息写入到服务端的一个表中,每张表对应一个密钥,然后给客户端发送一个密钥也就是session,再次访问的时候通过这个密钥来获取用户数据。
session这张表需要使用makegrations来自动建立
views文件
from django.shortcuts import render,HttpResponse,redirect # Create your views here. def login(request): if request.method == 'POST':#此时客户端提交数据过来 name=request.POST.get('user') pwd=request.POST.get('pwd') if name=='ye' and pwd=='1': # ret=redirect('/index/') # ret.set_cookie('username','ye')#客户端访问过来,给他设置一个cookie,下次来访问的时候,只有cookie对了才能访问 # return ret request.session['islog']='ye' request.session['username']='ye' ret = redirect('/index/') return ret return render(request,'login.html') def index(request): if request.COOKIES.get('username',None): return HttpResponse('hello') else: return redirect('/login/')
模板文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/login/" method="POST">#通过post方式进行传输,第一次访问login的时候,直接返回这个html,当通过post传递表单的时候,运行if判断,设置额外的session,只有正确的才能访问主页index <p>姓名<input type="text" name="user"></p> <p>密码<input type="password" name="pwd"></p> <p><input type="submit"></p> </form> </body> </html>

浙公网安备 33010602011771号