卜若的代码笔记-DJAngle系列-第四章:数据库,及其创建表和表的增删改查

1.djangle默认使用SQLight数据库,没错就是你手机里面的那种默认数据库

当然,你可以切换任意数据库(sql体系的),具体的操作去查。我还是使用默认的吧,简单一点

2.创建模型

所谓模型,就是一个清晰而且真实的数据,包含必要的字段,DJAngle沿着DRYPrinciple,其目标是一旦定义这个模型,就能够自动驱动这个模型。接下来会有对这段话的解释。

我们定义两个模型

Question和Choice模型

2.1代开polls/models.py文件,创建Question,Choice对象,复制粘贴...

from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

2.2创建数据库迁移数据(数据库创建表,原文翻译起来奇奇怪怪的,就是在创建一张表)

python manage.py sqlmigrate polls 0001

这个sqlmigrate命令在做什么呢,再做

我们可以看键入这个命令之后输出的东西:

BEGIN;
--
-- Create model Question
--
CREATE TABLE "polls_question" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "question_text" varchar(200) NOT NULL, "pub_date" datetime NOT NULL);
--
-- Create model Choice
--
CREATE TABLE "polls_choice" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "choice_text" varchar(200) NOT NULL, "votes" integer NOT NULL, "question_id"
 integer NOT NULL REFERENCES "polls_question" ("id") DEFERRABLE INITIALLY DEFERRED);
CREATE INDEX "polls_choice_question_id_c5b4b260" ON "polls_choice" ("question_id");
COMMIT;

很熟悉的sql语句,所以这个命令其实是在在SQLLight中建表CreateTable

然后我们就可以使用他了!

很简单,我们这里使用python的shell,当然在djangle里面内置了shell

使用命令行打开它

2.3执行增删改查

然后,我们先导入我们之前创建的Question模型

2.3.1 增操作 

然后我们创建一个实例

 対实例进行赋值

 

将实例存储到服务器里面

2.3.2查操作, 从数据库中读取该数据

从数据库中根据字段读取该数据

 

返回的是一个set

输出第一个

2.3.3 删操作

 报not exist异常

2.3.4 改操作

发布了225 篇原创文章 · 获赞 11 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_37080133/article/details/104471875