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>