首页 / GO / Django(数据库操作)
Django(数据库操作)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Django(数据库操作),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1785字,纯文字阅读大概需要3分钟。
内容图文
在django中,数据库的创建一般是在models.py中完成
一.单表操作(在表的创建过程中,不能同时对表进行增删等操作,要等表创建完再执行相关操作)
1.创建表
class AuthorDetail(models.Model): sex = models.BooleanField(max_length=1, choices=((0, ‘男‘),(1, ‘女‘),)) email = models.EmailField() address = models.CharField(max_length=50) birthday = models.DateField() author = models.OneToOneField(Author)
#声明一个类AuthorDetail,表名就是类名的小写。sex,email等是字段名
在class声明完之后,在命令行中输入:1.python manage.py makemigrations 2.python manage.py migrate 然后点击view-toolwindow-database,将db.sqlite3拖入右边窗口
生成如图所示表
2.增(create)(暂且不会同时添加多条数据,要一条一条添加)
# create方式一: Author.objects.create(name=‘Alvin‘) #Author是类名,也是表名 # create方式二: Author.objects.create(**{"name":"alex"}) #create()参数如果是字典,前面**,如果是列表,前面*。 # save方式一: author=Author(name="alvin") author.save() # save方式二: author=Author() author.name="alvin" author.save()
3.删(delete)
Book.objects.filter(id=1).delete() #filter是遍历,找到id为1的行并删除
4.改(update和save)
models.Book.objects.filter(id=3).update(title="PHP") #只能用filter,不能用get
obj=models.Book.objects.filter(id=3)[0] obj.title="Python" obj.save()
5.查
# <1>filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 # <2>all(): 查询所有结果
二.一对多操作
1.表的创建
#创建两张表Author/Book
#在Author表中添加外键,外键是在多的表中添加的(一本书可以由多个作者书写)。
class Author(models.Model): name=models.CharField(max_length=50) book=models.ForeignKey("Book",on_delete=models.CASCADE) #Book表在Author表下创建,要写成"Book"。这句话的意思:book_id字段(自动生成)绑定Book表中的id class Book(models.Model): address=models.CharField(max_length=50)
2.查
#正向查询(由book_id所在表查询另一张表)
autor=Author.objects.get(id=4) #从Author表中得到id=4的一行,用变量autor存储 print(autor.book_id) #得到变量autor的book_id #book_id=2 print(autor.book.address) #通过Author得到book表中的address #中国1
#反向查询()
cls=Book.objects.get(id=1) #Book表中id=1的在Author表中对应id=1,2的两行
cls.author_set.all()
三.多对多
原文:https://www.cnblogs.com/gaoyukun/p/9028546.html
内容总结
以上是互联网集市为您收集整理的Django(数据库操作)全部内容,希望文章能够帮你解决Django(数据库操作)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。