首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】2021年12月 Python教学课程 33-Django框架之模型

【愚公系列】2021年12月 Python教学课程 33-Django框架之模型

作者头像
愚公搬代码
发布于 2022-12-01 01:56:36
发布于 2022-12-01 01:56:36
62500
代码可运行
举报
文章被收录于专栏:历史专栏历史专栏
运行总次数:0
代码可运行

文章目录


一、模型类的定义

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.db import models

# Create your models here.
# 准备书籍列表信息的模型类
class BookInfo(models.Model):
    # 创建字段,字段类型...
    name = models.CharField(max_length=10)

# 准备人物列表信息的模型类
class PeopleInfo(models.Model):
    name = models.CharField(max_length=10)
    gender = models.BooleanField()
    # 外键约束:人物属于哪本书
    book = models.ForeignKey(BookInfo)

1.字段及参数

CharField: .要求必须有参数 maxlength,限制该字段的最大字符数;

IntegerField :用于保存整数;

DecimalField :浮点数. 必须 提供两个参数:max_digits 总位数,decimal_places 小数位数;

DateField :日期字段,年月日;

DateTimeField :年月日时分秒;

对于日期字段需要注意的参数:

auto_now:每次操作改数据都会自动更新时间;

auto_now_add:新增数据的时候会将当前时间自动添加,后续的修改该字段不会自动更新。

EmailField:带有检查Email合法性的 CharField,不接受 maxlength 参数.

ForeignKey:外键字段,设置在 '一对多’中’多’的一方;

OneToOneField:一对一字段,用来扩展已有字段

ManyToManyFiled:多对多字段,建议设置在查询频率较高的表中

二、数据库配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DATABASES = {
    'default': {          
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'blog',    #你的数据库名称 数据库需要自己提前建好
        'USER': 'root',   #你的数据库用户名
        'PASSWORD': '', #你的数据库密码
        'HOST': '', #你的数据库主机,留空默认为localhost
        'PORT': '3306', #你的数据库端口
    }
}

三、模型迁移 (建表)

迁移由两步完成 :

生成迁移文件:根据模型类生成创建表的语句

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python manage.py makemigrations

执行迁移:根据第一步生成的语句在数据库中创建表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python manage.py migrate

迁移之后出现0001的文件,就代表数据库迁移完成,数据库有对应的表

四、单独的py文件测试ORM操作需要配置的参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os

if __name__ == "__main__":
  os.environ.setdefault("DJANGO_SETTINGS_MODULE", "day58.settings")
  import django  django.setup()
  from app01 import models  # 这一句话必须在这下面导入
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python:Django搭建博客
注册完后,在项目根目录中(即 manage.py 所在的目录)创建 templates 文件夹,使用 pycharm 创建项目会自动帮我们创建
用户8832503
2021/08/20
7850
【Django】基于PythonWeb的Django框架设计实现天天生鲜系统-3模型创建
当前项目的开发都是数据库驱动,即分析出项目中所需要存储的数据,然后设计数据表结构,接下来对通过编写 SQL 语句对数据库中的表进行 CURD 操作。
天道Vax的时间宝藏
2021/08/11
1.3K0
【愚公系列】2021年12月 Python教学课程 34-Django框架之站点管理
为工作人员或客户生成管理、添加、更改和删除内容的管理站点是一项单调乏味的工作,不需要太多的创造性。为此,Django完全自动化模型的创建管理界面。
愚公搬代码
2022/12/01
5900
【愚公系列】2021年12月 Python教学课程 34-Django框架之站点管理
1.4 Django基础篇--数据库模型设计
新书小广告 《Python爬虫开发与项目实战》基础篇 试读章节链接: http://pan.baidu.com/s/1hrWEOYg 这本书包括基础篇,中级篇和深入篇三个部分,不仅适合零基础的朋友入门,也适合有一定基础的爬虫爱好者进阶,如果你不会分布式爬虫,不会千万级数据的去重,不会怎么突破反爬虫,不会分析js的加密,这本书会给你惊喜。 前言 从上一节我们知道home应用需要涉及文章,分类和标签三个部分,其实这就是个人博客系统最核心的功能:发表文章。下面我们分析一下数据库
七夜安全博客
2018/06/26
1.4K0
Django教程 —— 模型设计
我们一般操作数据库的时候都是通过写sql语句,那么能不能不写sql语句就可以操作数据库呢? 可以利用ORM框架。
忆想不到的晖
2020/11/06
1.2K0
【Python全栈100天学习笔记】Day41 Django深入理解框架
在上一个章节中,我们提到了Django是基于MVC架构的Web框架,MVC架构追求的是“模型”和“视图”的解耦合。所谓“模型”说得更直白一些就是数据(的表示),所以通常也被称作“数据模型”。在实际的项目中,数据模型通常通过数据库实现持久化操作,而关系型数据库在过去和当下都是持久化的首选方案,下面我们以MySQL为例来说明如何使用关系型数据库来实现持久化操作。
天道Vax的时间宝藏
2022/04/02
2.7K0
【Python全栈100天学习笔记】Day41 Django深入理解框架
Django快速入门——投票程序(1、2)创建项目&模型
让我们开始Django文档教程中的投票案例吧。 可以在https://docs.djangoproject.com/zh-hans/4.2/intro/tutorial01/ 查看原教程。
一只大鸽子
2023/09/02
5580
Django快速入门——投票程序(1、2)创建项目&模型
django_mysql_配置
1. 创建一个新的应用,为booktest,在models.py 文件中定义模型类,然后去setting注册应用
py3study
2020/01/16
1.7K0
Django——模型Model
对象关系映射(Object Relation Mapping)实现了关系和数据库之间的映射,隐藏了关系数据访问的细节,不需要再编写SQL语句
羊羽shine
2019/05/28
9280
Django教程 —— 初步完善图书管理系统
我们写项目写东西的时候都要养成良好的习惯,不要一来就上手写代码,我们先要进行初步分析和设计,让大脑有整体的概念,需要用到什么技术实现什么效果。这个习惯也不能学的太死,我们要活学活用,学会变通。有时候只是简单的学习一下,或者简单的实现一个小功能。大脑已经可以大概掌握,就无须设计与分析。
忆想不到的晖
2020/11/06
1.1K0
django model详解
1、安装pymysql模块 pip install pymysql 2、setting.py中设置引擎 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # postgresql / mysql / sqlite3 / oracle 'NAME': 'test1', # 数据库名 'USER': 'root', 'PASSWORD': 'root', 'HOST': 'localhost', # 本地:localhost 'PORT': '3306', # 默认端口:3306 } } 3、model使用流程 创建应用python manage.py startapp [应用名] settings.py中的 INSTALLED_APPS = [] 添加应用 models.py定义模型类 生成迁移python manage.py makemigrations 执行迁移python manage.py migrate 使用模型 4、字段:AutoField,BooleanField,CharField,IntegerField,FloatField,DateField,TimeField,DateTimeField,DecimalField,FileField,ImageField AutoField: 无需指定,自增长id BooleanField: Boolean类型,默认Flase;表单控件: CheckboxInput NullBooleanField: Boolean类型, 支持None, True, False CharField(max_length=字段长度20): 字符串 IntegerField: 整数 FloatField: 浮点数 DateField: datetime.date实例的日期 TimeField: datetime.time实例的时间 DecimalField(max_digits=位数总数None, decimal_places=小数点后的数字位数None): Decimal的十进制浮点数 DateTimeField([auto_now=修改时间戳False, auto_now_add=创建时间戳False]): datetime.datetime实例的日期和时间; 表单控件: TextInput + 日历控件
用户5760343
2022/05/14
8810
【愚公系列】2022年01月 Python教学课程 40-Django框架之模型属性详解
模型类如果未指明表名,Django默认以小写app应用名_小写模型类名为数据库表名。
愚公搬代码
2022/12/01
1.7K0
Django 学习笔记 | 2、模型
在这之前需要先设计数据库的表什么的,这里就不详细的说了(主要是我太懒了),感兴趣的可以看本文的参考链接,下面直接贴定义模型类的代码。
TeamsSix
2020/03/12
7210
Django ORM
ps:如果inspectdb后不跟表名,那么就会将该数据库内的所有表反向解析成类(python语句)
HammerZe
2022/03/25
4.4K0
Django ORM
ORM
class BookInfo(models.Model): # 每一个字段对应 表中的一列 title = models.CharField(max_length=30) # auto_now_add=True 意味着默认时间为 该行插入时间 pub_date = models.DateTimeField(auto_now_add=True)
爱喝水的木子
2022/01/12
5550
Django 2.x实战(02) - 深入模型
其他的配置可以参考官方文档中数据库配置的部分。 NAME属性代表数据库的名称,如果使用SQLite它对应着一个文件,在这种情况下NAME的属性值应该是一个绝对路径。如果使用其他关系型数据库,还要配置对应的HOST(主机)、PORT(端口)、USER(用户名)、PASSWORD(口令)等属性。
用户8442333
2021/05/20
5190
Django 系列博客(四)
本篇博客介绍 django 如何和数据库进行交互并且通过 model 进行数据的增删查改
py3study
2020/01/19
7240
Django ORM (一) 创建数据库
创建一个 Django 项目及应用 django-admin startproject orm cd orm python manage.py startapp app01 在 models.py 上创建数据库结构 from django.db import models class Publisher(models.Model): name = models.CharField(max_length=30, verbose_name="名称") address = models.Ch
py3study
2020/01/16
1.8K0
python-Django-Django 数据库迁移(二)
其中,app_name是我们要创建迁移文件的应用程序的名称。如果我们没有指定app_name,Django会自动检测出我们最近修改的模型,并为其创建新的迁移文件。
玖叁叁
2023/04/23
9750
第十九章 Django的ORM映射机制
第十九章 Django的ORM映射机制 第一课 Django获取多个数据以及文件上传 1.获取多选的结果(checkbox,select/option)时: req.POST.getlist('favor')获取一个列表 2.上传文件: 前端html中: <form action='/login' method='POST' enctype='multipart/form-data'> 后端接收: if req.method=='POST':
玩蛇的胖纸
2018/06/08
1K0
相关推荐
Python:Django搭建博客
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档