python的django框架

python manage.py runserver
运行django服务器

python manage.py migrate
创建django_session表
错误一:
raise AlreadyRegistered
('The model %s is already registered' % model.__name__)
django.contrib.admin.sites.AlreadyRegistered:
The model Event is already registered

这里是因为看教程,多写了admin.site.register()和admin.site.Guest()方法

错误二:
因为教程里面的的排版有问题,使得create_time方法没有被写入Guest类,
当我们模型建好了,执行数据库迁移时没有把create_time字段迁移进去
迁移的命令如下
python manage.py makemigrations sign

python manage.py migrate


基本数据访问
当需要操作数据库时,不再需要通过SQL语句,Django自动为这些模型提供
了高级的Python API.接下来练习数据库表的操作,运行manage.py提供的
shell命令

python manage.py shell

该shell模式为Django特别定制,在该模式下可以操作Django模型

from sign.models import Event,Guest

Event.object.all()

Guest.objects.all

from datetime import datetime
需要设置时间导入的的方法


插入数据
e1 = Event(id = 2,name = '红米Pro发布会',
limit=2000,status=True,address='北京水立方',
start_time=datetime(2016,8,10,14,0,0))

e1.save()

创建与保持共同执行
Event.objects.create(id=3,name='红米MAX发布会',
limit=2000,status =True,address='北京会展中心',
start_time=datetime(2016,9,22,14,0,0))

Guest.objects.create(realname='andy',
phone=12321312321,email='andy@mail.com',
sign=False,event_id=3)

查询数据
e1 = Event.objects.get(name = '红米MAX发布会')

e1

e1.address


Event.objects.get(name = '红米MAX发布会').limit

因为name='发布会'并没有完全匹配到发布会名称,所以会
抛出DoesNotExist异常.很多时候我们使用模糊查询

table.objects.filter()方法是从数据库取得匹配的结果,
返回一个对象列表,如果记录中不存在的话,它会返回空
列表[].

e2 = Event.objects.filter(name__contains='发布会')

name为发布会的字段名,在name和contains之间用双下划线
连接.这里contains部分会被Django翻译成SQL语句中的LIKE
语句.
关联查询
>>> g1 = Guest.objects.get(sign='True')
>>> g1.event
<Event: 小米5发布会>
>>> g1.event.name
'小米5发布会'
>>> g1.event.address
'深圳迈科龙大厦'
>>>
删除
Guest.object.get(phone='13052939116').delete()

更新
第一种方法
>>> g3 = Guest.objects.get(sign='False')
>>> g3.realname='zsj'
>>> g3.save()
<bound method Model.save of <Guest: Guest object (3)>>
第二种方法
Guest.objects.select_for_update().
filter(sign='False').update(realname='robot')





转载于:https://www.cnblogs.com/zsjlovewm/p/11141821.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值