Django(数据库操作)

在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)

猜你喜欢

转载自www.cnblogs.com/gaoyukun/p/9028546.html