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
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)


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/')
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/')

浙公网安备 33010602011771号