django

 

path('articles/<int:year>/', views.year_archive)


str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式
int,匹配正整数,包含0。
slug,匹配字母、数字以及横杠、下划线组成的字符串。
uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
path,匹配任何非空字符串,包含了路径分隔符

 

 

超级用户后台管理数据库

创建超级用户

 python manage.py createsuperuser

 清空数据库:python manage.py  flush

 查询某个命令的详细信息: django-admin.py  help  startapp

       admin 是Django 自带的一个后台数据库管理系统。

启动交互界面 :python manage.py  shell

     这个命令和直接运行 python 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据,还有一些小测试非常方便。

 终端上输入python manage.py 可以看到详细的列表,在忘记子名称的时候特别有用

from django.db import models

# Create your models here.


class Book(models.Model):
    name=models.CharField(max_length=20,verbose_name='姓名')
    price=models.IntegerField(verbose_name='价格')  #verbose_name定制显示信息
    pub_date=models.DateField(verbose_name='发布日期')
    publish=models.ForeignKey("Publish",verbose_name='出版社')
    authors=models.ManyToManyField("Author")

    def __str__(self):
        return self.name

class Publish(models.Model):

    name=models.CharField(max_length=32)
    city=models.CharField(max_length=32)

    def __str__(self):
        return self.name


# class Book_Author(models.Model):
#     book=models.ForeignKey("Book")
#     author=models.ForeignKey("Author")


class Author(models.Model):

    name=models.CharField(max_length=32)
    age=models.IntegerField(default=20)

    def __str__(self):
        return self.name
models.py

 

from django.contrib import admin

# Register your models here.
from app01.models import *

class BookAdmin(admin.ModelAdmin):
    '''配置后台显示的内容  传给注册信息'''
    list_display = ('id','name','price','pub_date','publish',)#显示的字段
    # list_editable = ('name','price','publish',) #可编辑的字段,M2M不能设为可编辑
    filter_horizontal = ('authors',) #查询框
    # list_per_page = (3)#设置分页
    search_fields = ('id','name','price')#可以以哪些字段搜索
    list_filter = ('pub_date','publish',)#设置分类查询
    ordering = ('-id',) #设置默认以哪个字段排序('-id',)降序
    fieldsets =[  #显示部分字段,其余折叠
        (None,               {'fields': ['name']}),
        ('price information', {'fields': ['price',"publish",'pub_date','authors'], 'classes': ['collapse']}),
    ]


admin.site.register(Book,BookAdmin)
admin.site.register(Publish)
admin.site.register(Author)
admin.py

 

 

cookie和session

def login(request):  #登陆页面
    if request.method == "POST":
        name = request.POST.get("name")
        pwd =  request.POST.get("pwd")
        if name == 'alex' and pwd=='123':
            # return redirect('/index/')
            ret = redirect('/index/')  #设置cookie
            ret.set_cookie('alex','peiqi')
            return ret

    return render(request,'login.html')

def index(request):
    if request.COOKIES.get('alex',None)=='peiqi':#获取cookie
        return HttpResponse("OK")
    else: #如果没有cookie,跳转到另一个页面
        return redirect('/login/')
设置COOKIES
def login(request):

    if request.method == "POST":
        name = request.POST.get("user")
        pwd =  request.POST.get("pwd")
        if name == 'alex' and pwd=='123':
            # return redirect('/index/')#不设cookie
            # ret = redirect('/index/')  #设置cookie
            # ret.set_cookie('username','123',max_age=5)
            # return ret
            '''设置session'''
            request.session['is_loginaaa']=True
            request.session['user'] = name
            return redirect('/index/')

    return render(request,'login.html')

def index(request):
    # if request.COOKIES.get('username',None):#获取cookie
    #     name = request.COOKIES.get('username',None)
    #     return render(request,'index.html',locals())
    if request.session.get('is_loginaaa',None)==True:
        name = request.session.get('user',None)
        return render(request,'index.html',locals())
    else: #如果没有cookie,跳转到另一个页面
        return redirect('/login/')
session

 

posted @ 2018-03-12 21:03  web123  阅读(52)  评论(0)    收藏  举报