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>

 

  

 

posted @ 2018-09-10 23:08  brownbearye  阅读(152)  评论(0)    收藏  举报