卜若的代码笔记-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 改操作

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值