当前位置: 首页 > news >正文

django系列(四)之模型

django中说的模型(model)就是数据库中的table(表)

django模型文档地址:https://docs.djangoproject.com/zh-hans/5.2/intro/tutorial02/

一、创建模型
模型是在你创建的app目录下的models.py中创建

django中模型是以类的形式存在,一个类就是一张表

from django.db import modelsclass Question(models.Model):question_text = models.CharField(max_length=200)pub_date = models.DateTimeField("date published")# def __str__(self):#    return '问题表'def __str__(self):return self.question_textclass Choice(models.Model):question = models.ForeignKey(Question, on_delete=models.CASCADE)choice_text = models.CharField(max_length=200)votes = models.IntegerField(default=0)# 解释
1、每个模型都是 django.db.models.Model 类的子类。每个模型有许多类变量,它们都表示模型里的一个数据库字段。
2、每个字段的数据类型都是 Field 类的实例 ,比如,字符字段被表示为 CharField ,日期时间字段被表示为 DateTimeField 。这将告诉 Django 每个字段要处理的数据类型。
3、__str__(self)  这个是返回 self.question_text 这个值,方便辨认
二、激活模型
1、python manage.py makemigrations polls
# 该命令会检测你对模型文件的修改,并且把修改的部分写进迁移文件中。结果会输出以下内容
Migrations for 'polls':polls\migrations\0001_initial.py- Create model Question- Create model Choice这时在你的app目录下的migrations目录下会生成一个迁移文件
0001_initial.py2、python manage.py sqlmigrate polls 0001
该命令会生成0001_initial.py文件中对应的sql语句,
--
-- Create model Question
--
CREATE TABLE `polls_question` (`id` bigint AUTO_INCREMENT NOT NULL PRIMARY KEY, `question_text` varchar(200) NOT NULL, `date published` datetim
e(6) NOT NULL);
--
-- Create model Choice
--
CREATE TABLE `polls_choice` (`id` bigint AUTO_INCREMENT NOT NULL PRIMARY KEY, `choice_text` varchar(200) NOT NULL, `votes` integer NOT NULL, `q
uestion_id` bigint NOT NULL);
ALTER TABLE `polls_choice` ADD CONSTRAINT `polls_choice_question_id_c5b4b260_fk_polls_question_id` FOREIGN KEY (`question_id`) REFERENCES `poll
s_question` (`id`);# 注意:
数据库的表名是由应用名(polls)和模型名的小写形式( question 和 choice)连接而来。(如果需要,你可以自定义表名)这个 sqlmigrate 命令并没有真正在你的数据库中的执行迁移 - 相反,它只是把命令输出到屏幕上,让你看看 Django 认为需要执行哪些 SQL 语句3、python manage.py migrate
# 该命令真正会在数据库中执行对应的sql语句,
Operations to perform:Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:Rendering model states... DONEApplying polls.0001_initial... OK4、python .\manage.py migrate polls
Operations to perform:Apply all migrations: polls
Running migrations:No migrations to apply.
# 如果模型没有更改,可以看到,不会进行重复执行
三、API使用
执行 python manage.py shell 命令进入django命令行,并自动加载当前 Django 项目的环境。
这意味着你可以在这个交互式环境中:
* 直接导入和操作 Django 项目中的模型(Model)
* 调用 Django 的各种功能和 API
* 执行数据库操作(查询、创建、更新、删除数据等)
* 测试代码片段或调试问题
四、模型介绍
官网地址:https://docs.djangoproject.com/zh-hans/5.2/ref/models/
http://www.sczhlp.com/news/62522/

相关文章:

  • 服装设计网站有哪些今天合肥刚刚发生的重大新闻
  • 个人网站可以做app吗五大建设是指什么
  • 济南搜索引擎优化网站查询个人房产信息网站
  • 一级域名 二级域名 目录网站推广女装网站建设文献综述
  • 盘多多搜索引擎入口seo关键字排名
  • 北京seo分析检测 网站优化
  • 2021年最新的网站近两年网络营销成功案例
  • 南京网站南京网站开发网站内容
  • 如何做网校网站郑州网络营销推广公司信息
  • 国外网站模版免费下载展会网站建设
  • 国产CPU崛起:自给率超20%,和英特尔、AMD差距仅1-2年
  • 谁说的YOLO只能目标检测?手把手教你解锁它隐藏的热力图视野!
  • 微软安全更新指南:全新门户提升漏洞管理与API集成
  • 7 款替代 Zapier 的开源工作流工具推荐
  • 嘉兴网站建设定制网站hexo 导入 wordpress
  • dede自适应网站模板电子商务网站建设需求分析报告
  • 网站建设企业宣传网络工程师考试内容
  • 法律平台网站建设方案望野古诗诵读
  • 网站开发语言为 php网站建设忄金手指快速
  • 宁波网站推广业务郑州市建设安全管理协会网站
  • 怎么建设购物网站做百度快照要先有网站吗
  • 重庆网站制作团队在线ui设计平台
  • 局域网网站架设网站备案的坏处
  • 商业设计网站有哪些专业网站建设技术
  • ubuntu安装无线网卡驱动
  • 网站建设服务兴田德润网站建设企业模板哪家好
  • 行业门户网站模板下载常用的app开发制作
  • 那家公司做网站比较好网站建设中源代码
  • 什么是网站建设外包wordpress域名防封插件
  • 网站建设需要什么方案英文网站流量统计