Django4.1从入门到精通——模型的创建
官方文档
https://docs.djangoproject.com/zh-hans/4.1/intro/tutorial02/
模型设计哲学
一个模型就是单个定义你的数据的信息源。模型中包含了不可缺少的数据区域和你存储数据的行为。Django 遵循 DRY 原则。目的就是定义你的数据模型要在一位置上,而且自动从该位置推导一些事情。
案例中的模型
在这个投票应用中,需要创建两个模型:问题 Question 和选项 Choice。Question 模型包括问题描述和发布时间。Choice 模型有两个字段,选项描述和当前得票数。每个选项属于一个问题。
这些概念可以通过一个 Python 类来描述。按照下面的例子来编辑 polls/models.py 文件:
from django.db import models# Create your models here.class Question(models.Model):question_text = models.CharField(max_length=200)pub_date = models.DateTimeField('发布时间')class Choice(models.Model):question = models.ForeignKey(Question,on_delete=models.CASCADE)choice_text = models.CharField(max_length=200)votes = models.IntegerField(default=0)
迁移到数据库(manage.py makemigrations 、migrate)
这个涉及的原理很多,作为食用主义者,记住这三步操作就可以了:
1、编辑 models.py 文件,改变模型。(检查 python manage.py check 检查项目中的问题)
2、运行 python manage.py makemigrations 为模型的改变生成迁移文件。
3、运行 python manage.py migrate 来应用数据库迁移。
为方便运行这些命令而不至反复复制绝对路径,最终我妥协了,还是污染一下我的操作系统环境:
这样就可以愉快使用相对路径来执行命令了:
代码添加数据到数据库中
下面照着官方的例子熟悉一下Django操作数据库和类的方法:
python manage.py shell
>>> from polls.models import Choice, Question # Import the model classes we just wrote.# No questions are in the system yet.
>>> Question.objects.all()
<QuerySet []># Create a new Question.
# Support for time zones is enabled in the default settings file, so
# Django expects a datetime with tzinfo for pub_date. Use timezone.now()
# instead of datetime.datetime.now() and it will do the right thing.
>>> from django.utils import timezone
>>> q = Question(question_text="What's new?", pub_date=timezone.now())# Save the object into the database. You have to call save() explicitly.
>>> q.save()# Now it has an ID.
>>> q.id
1# Access model field values via Python attributes.
>>> q.question_text
"What's new?"
>>> q.pub_date
datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=<UTC>)# Change values by changing the attributes, then calling save().
>>> q.question_text = "What's up?"
>>> q.save()# objects.all() displays all the questions in the database.>>> Question.objects.all()
<QuerySet [<Question: Question object (1)>]>
更多关于数据库和模型的操作可以看一下两个文档
https://docs.djangoproject.com/zh-hans/4.1/topics/db/queries/
https://docs.djangoproject.com/zh-hans/4.1/ref/models/relations/
这样,我们就完成了模型和数据库的创建
Django4.1从入门到精通——模型的创建相关推荐
- PyTorch系列入门到精通——模型创建与nn.Module
PyTorch系列入门到精通--模型创建与nn.Module
- PyTorch系列入门到精通——模型保存与加载
PyTorch系列入门到精通--模型保存与加载
- qt 创建文件_xmake从入门到精通2:创建和编译工程
xmake是一个基于Lua的轻量级现代化c/c++的项目构建工具,主要特点是:语法简单易上手,提供更加可读的项目维护,实现跨平台行为一致的构建体验. 本文主要详细讲解如何创建一个基于xmake的工程以 ...
- CANoe 从入门到精通
目录 前言 初级篇 实践篇 前言 本专栏主要分为二个部分: 第一部分是初级篇,主要介绍CANoe中常用的模块: 第二部分是实践篇,主要是带领大家一起做一个项目,此项目是BootLoader刷写的上位机 ...
- tensorflow从入门到精通100讲(七)-TensorFlow房价预估使用Keras快速构建模型
前言 这篇文章承接上一篇tensorflow从入门到精通100讲(二)-IRIS数据集应用实战 https://wenyusuran.blog.csdn.net/article/details/107 ...
- Simulink仿真入门到精通(五) Simulink模型的仿真
本系列教程是根据孙忠潇编著的<<Simulink仿真及代码生成技术入门到精通>>学习笔记. 目录 Simulink仿真入门到精通(一) Simulink界面介绍 Simulin ...
- 渲染引擎入门到精通一_导入模型的实现和解决fbxsdk的使用坑
前置条件, 学习这个文章前,需完全跑通项目 渲染引擎入门到精通-前篇零-HLSL编译的方法研究_avi9111的博客-CSDN博客 导入模型 因为渲染需要用到法线,切线, ...
- 火云开发课堂 - 《Shader从入门到精通》系列 第十六节:在Shader中对3D模型使用纹理
<Shader从入门到精通>系列在线课程 优惠链接:http://edu.csdn.net/combo/detail/90 第十一节:在Shader中对3D模型使用纹理 视频地址: htt ...
- 火云开发课堂 - 《Shader从入门到精通》系列 第二十节:在Shader中对3D模型进行多纹理混合
<Shader从入门到精通>系列在线课程 优惠链接:http://edu.csdn.net/combo/detail/90 第二十节:在Shader中对3D模型进行多纹理混合 视频地址: ...
最新文章
- 基于Pygame写的翻译方法
- 用c语言运行程序的优点,C语言学习与总结---第一章:C语言概述
- VMware下Ubuntu联网操作
- JS日期加减,日期运算
- 远程命令执行与代码执行(remote command/code execute)漏洞总结
- 刘子佼 mysql 下载_MySQL数据管理之备份恢复案例解析 23讲 Mysql备份恢复实战 视频教程...
- 前端JavaScript规范
- 上证指数30年k线图_技术预判2020:上证指数要突破3500点才会“井喷”
- 浏览器中跨域创建cookie的问题
- 金蝶kiss对计算机软件的要求,金蝶软件的产品适用范围分析
- 作业要求 20180925-1 每周例行报告
- centos下安装和卸载jdk
- matplotlib绘制树形图之基本配置——万能模板案例
- 有50 家人家,每家一条狗。有一天警察通知
- Transact-SQL语言基础语句
- 在公众号发文是怎么赚钱的
- nodejs mysql更新redis_node中的redis使用--ioredis
- VMware -- 克隆虚拟机
- CCNA实验二十四 路由更新的安全
- IntelliJ IDEA 目录