DjangoORM属性操作和models创建类语法
Models语法:
class Publis(models.Model): # 设置主键 id=models.AutoField(primary_key=True,auto_created=True) # 设置name字段,类型CharField 长度 max_length 唯一 unique name=models.CharField(max_length=32,unique=True) def __str__(self): return self.name
一对多:
# 书籍 class Book(models.Model): id=models.AutoField(primary_key=True) title=models.CharField(max_length=32,unique=True) pub=models.ForeignKey(to=Publis,on_delete=models.CASCADE) def __repr__(self): return self.title
多对多
#作者 class Author(models.Model): name=models.CharField(max_length=22,unique=True) books=models.ManyToManyField('Book') def __repr__(self): return self.name
ORM属性操作
获取页面输入的内容:
request.POST.get('id') request.GET.get('id') request.POST.getlist(列表) models.Publis.objects.filter() models.Publis.objects.all() //添加内容create models.Publis.objects.create //排序 order_by //页面跳转 return render(request,'页面',{'msg':msg}) return render(request,'addpub.html',{'err_msg':err_msg}) return redirect('/pub/') //显示报错信息 return Httpresponse //删除 delete del_id=request.GET.get('id') models.Book.objects.get(id=del_id).delete() //修改 ef upd_auto(request): auto_id=request.GET.get('id') auto_list=models.Author.objects.get(id=auto_id) if request.method=='POST': new_name=request.POST.get('new_name') # 选择多个数据,所有用getlist获取 book_id=request.POST.getlist('book_id') auto_list.name=new_name # 用set保存到数据库, auto_list.books.set(book_id) auto_list.save() return redirect('/auto/') book_all=models.Book.objects.all() return render(request,'updauto.html',{'auto_list':auto_list,'book_all':book_all})
html属性方法操作
//循环用法 for <select name="book_ids" id="" multiple> {% for book in book_all %} <option value="{{ book.id }}">{{ book.title }}</option> {% endfor %} </select> //forloop.counter <td>{{ forloop.counter }}</td> //for if {% for book in book_all %} {% if book in auto_list.books.all %} <option value="{{ book.id }}" selected>{{ book.title }}</option> {% else %} <option value="{{ book.id }}">{{ book.title }}</option> {% endif %} {% endfor %} //删除修改通过id <a href="/delauto/?id={{ auto.id }}"> <button>删除</button> </a> <a href="/updauto/?id={{ auto.id }}"> <button>修改</button> </a>