二- orm能干和不能干的事
1 能创建数据表,新增,删除字段
2 不能创建数据库
三- orm增加字段:(注意数据库迁移命令2条) 注意:后来增加的字段,需要有默认值
方式1:User.objects.create(address='')
方式2:实例化产生一个user对象,user对象的save方法
四 删除字段 注释掉字段,执行数据库迁移命令
方式1:User.objects.filter(id=1,name='lqz').first().delete()
方式2:User.objects.filter(id=1,name='lqz').delete()
五 修改数据 直接修改字段,执行数据库迁移命令
User.objects.filter(id=1,name='lqz').update()
六 增删改查
1 单表查询所有用户:models.User.objects.all()
得到的是 queryset对象(当成列表),列表里面,一个一个的对象[user1,user2]
2 render(request, 'userlist.html', {'user_list': ret})
3 模板里: {% for user in user_list %}
#要循环的内容
{{user.name}}
{% endfor%}
4 get请求携带参数:
http://127.0.0.1:8000/deleteuser/?id=1
后台取值:request.GET.get('id')
request.GET['id']
5 orm删除记录 models.User.objects.filter(id=id).delete()
返回值:影响的行数
6 前台post提交的数据取值:name=request.POST.get('name')
7 orm保存:两种方式:
1 user=models.User.objects.create(name=name,password=pwd,address=addr)
2 user=models.User(name=name,password=pwd,address=addr)
user.save()
8 orm查询单条数据:user=models.User.objects.filter(id=id).first()
9 orm的修改 models.User.objects.filter(id=id).update(name=name,password=pwd,address=addr)
前后台交互 <form action="/updateuser/?id={{ user.id }}" method="post"> <p><input type="hidden" name="id" value="{{ user.id }}"></p> <p>用户名: <input type="text" name="name" value="{{ user.name }}"></p> <p>密码: <input type="text" name="password" value="{{ user.password }}"></p> <p>地址: <input type="text" name="addr" value="{{ user.address }}"></p> <input type="submit" value="提交"> </form>
七、Django生命周期
八、表的设计
一对多,多对多
一对多:对多的关系一旦确立,关联字段写在多的一方
publish=models.ForeignKey(to='Publish', to_field='id')
多对多:(自动创建第三张表)
authors = models.ManyToManyField(to='Author')