Django 数据库配置以及字段设置详解

配置PostGre 

要在 Django 中配置连接 PostgreSQL 数据库,并创建一个包含“使用人”和“车牌号”等字段的 Car

1. 配置 PostgreSQL 数据库连接

首先,在 Django 项目的 settings.py 中配置 PostgreSQL 连接。

修改 settings.py 文件:
# settings.pyDATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql',  # 使用 PostgreSQL'NAME': 'your_db_name',                    # 数据库名称'USER': 'your_db_user',                    # 数据库用户名'PASSWORD': 'your_db_password',            # 数据库密码'HOST': 'localhost',                       # 数据库主机,通常是localhost'PORT': '5432',                            # 数据库端口,通常是5432}
}

确保已经在 PostgreSQL 中创建了数据库,假设数据库名为 your_db_name,并设置了相应的用户名和密码。

 2. 下载依赖库

pip install psycopg2

模型生成数据库表

1. 创建 Car 模型

接下来,创建一个 Car 模型,该模型会映射为数据库中的 car 表。

创建 models.py 文件:
# 在应用的 models.py 文件中定义模型
from django.db import modelsclass Car(models.Model):user = models.CharField(max_length=100)  # 使用人字段plate_number = models.CharField(max_length=20)  # 车牌号字段def __str__(self):return f"{self.plate_number} - {self.user}"

2.模型生成具体库

预备迁移文件生成

python manage.py makemigrations 模型所在包名

正式迁移把预备文件进行执行

python manage.py migrate

逆向从数据库表生成模型类

  1. 在对一个数据库中建立好表、约束和表关系等

  2. 在根目录的cmd中运行:

python manage.py inspectdb > first_app/models.py

第2步执行后会在models中生成对应的模型类

譬如:

class DjangoSession(models.Model):session_key = models.CharField(primary_key=True, max_length=40)session_data = models.TextField()expire_date = models.DateTimeField()class Meta:managed = False   # 这个属性是通知django,不需要进行从模型到数据库的迁移管理db_table = 'django_session'  # 对应的数据库中的表名

Field(模型字段)

Field类型

所有的Field类型,见 Model field reference | Django documentation | Django

AutoField         自增id常用

BooleanField      布尔值

CharField             短文本

DateField             日期格式

DateTimeField       日期带时间的给是

FloatField           小数

SmallIntegerField      小整数

IntegerField            大整数

TextField          文本

UUIDField 这样使用:

import uuid
from django.db import modelsclass MyUUIDModel(models.Model):# uuid.uuid4 千万别写成 uuid.uuid4() ,不要写 ()id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

Field参数

  • max_length:字段最大长度,用于字符串等,字符串类型CharField必须设置该值

  • null:如果True,Django将在数据库中存储NULL空值。默认是False

  • blank:如果True,该字段被允许为空白("")。默认是False。请注意,这不同于null。null纯粹是与数据库相关的,而blank与验证相关。如果一个字段有blank=True,表单验证将允许输入一个空值。如果一个字段有blank=False,该字段将是必需的。

  • choices:示例:YEAR_IN_SCHOOL_CHOICES = (('FR', 'Freshman'),('SO', 'Sophomore'),('JR', 'Junior'),('SR', 'Senior'),('GR', 'Graduate')) ,中文示例:SEX_CHOICES=((1, '男'),(2, '女')),元组中的第一个元素是将存储在数据库中的值,第二个元素是将在页面中显示的值,最常见用于下拉选择框select

  • default:字段的默认值

  • help_text:用于显示额外的“帮助”文本

  • primary_key:如果True,这个字段是模型的主键,默认是False

  • unique:如果True,该字段在整个表格中必须是唯一的

  • verbose_name:详细字段名,不指定则是属性名的小写,并且用 空格 替换 '_'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/433884.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用ffmpeg合并视频和音频

使用ffmpeg合并视频和音频 - 哔哩哔哩 简介 FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec&#xff0…

vue3+ts不能将类型“Timeout”分配给类型“null”不能将类型“Timeout”分配给类型number

在设置有setTimeout() 函数时,一般是需要进行清除计时器操作的; 常用的做法是定义一个全局变量timer,在onMounted或者有需要的地方进行赋值,在onBeforeUnmount进行clear,一般在定义timer变量时,使用 numbe…

接档《凡人修仙传》的《牧神记》动画,能否成为黑马?

堪称B站国创半边天的《凡人修仙传》第三季将在10月19日迎来完结,接档它的是由玄机科技制作,改编自宅猪同名网络小说的《牧神记》。这部将于10月27日播出的“玄机娘娘新崽”,能否成功接下《凡人修仙传》的好彩头,成为国漫界下一匹黑…

Metasploit渗透测试之服务端漏洞利用

简介 在之前的文章中,我们学习了目标的IP地址,端口,服务,操作系统等信息的收集。信息收集过程中最大的收获是服务器或系统的操作系统信息。这些信息对后续的渗透目标机器非常有用,因为我们可以快速查找系统上运行的服…

计算机视觉综述

大家好,今天,我们将一起探讨计算机视觉的基本概念、发展历程、关键技术以及未来趋势。计算机视觉是人工智能的一个重要分支,旨在使计算机能够“看”懂图像和视频,从而完成各种复杂的任务。无论你是对这个领域感兴趣的新手&#xf…

HarmonyOS故障恢复实践

一、应用恢复框架 异常感知机制,实时通知应用; 统一保存和恢复机制,降低门槛; 重启恢复,保证恢复结果。 二、API全集 三、应用异常恢复实例 全面的异常检测机制,开放完善ability数据保存接口。当应用异常时…

Java并发:互斥锁,读写锁,公平锁,Condition,StampedLock

阅读本文之前可以看一看 Java 多线程基础: Java:多线程(进程线程,线程状态,创建线程,线程操作) Java:多线程(同步死锁,锁&原子变量,线程通信&…

Flask学习之项目搭建

一、项目基本结构 1、 exts.py 存在的目的:在Python中,如果两个或更多模块(文件)相互导入对方,就会形成导入循环。例如,模块A导入了模块B,同时模块B又导入了模块A,这就会导致导入循环。 比如在这个项目中…

[数据结构] 二叉树题目(一)

目录 一.翻转二叉树 1.1 题目 1.2 示例 1.3 分析 1.4 解决 ​编辑 二. 相同的树 2.1 题目 2.2 示例 2.3 分析 2.4 解决 三. 对称二叉树 3.1 题目 3.2 示例 3.3 分析 3.4 解决 一.翻转二叉树. - 力扣(LeetCode) 1.1 题目 1.2 示例 1.3 分…

Android Glide(一):源码分析,内存缓存和磁盘缓存的分析,实现流程以及生命周期

目录 一、Android Glide是什么,如何使用? Android Glide是一个由Google维护的快速高效的Android图像加载库,它旨在简化在Android应用程序中加载和显示图像的过程,包括内存缓存、磁盘缓存和网络加载,以确保图像加载的快…

java日志门面之JCL和SLF4J

文章目录 前言一、JCL1、JCL简介2、快速入门3、 JCL原理 二、SLF4J1、SLF4J简介2、快速入门2.1、输出动态信息2.2、异常信息的处理 3、绑定日志的实现3.1、slf4j实现slf4j-simple和logback3.2、slf4j绑定适配器实现log4j3.2、Slf4j注解 4、桥接旧的日志框架4.1、log4j日志重构为…

【高景一号卫星】

高景一号卫星 高景一号卫星是中国自主研发的一系列高分辨率商业遥感卫星,旨在满足全球民用遥感影像市场的需求。以下是对高景一号卫星的详细介绍: 一、基本信息 名称:高景一号(SuperView-1, SV-1)发射时间&#xf…

C++入门基础知识87(实例)——实例12【判断闰年】

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于判断闰年的相关内容! 关于【…

什么是托管安全信息和事件管理 SIEM?

什么是 SIEM? 安全信息和事件管理 ( SIEM ) 解决方案最初是一种集中式日志聚合解决方案。SIEM 解决方案会从整个组织网络中的系统收集日志数据,使组织能够从单一集中位置监控其网络。 随着时间的推移,SIEM解决方案已发展成为一个完整的威胁…

【裸机装机系列】16.kali(ubuntu)-安装linux和win双系统-重装win11步骤

推荐阅读: 1.kali(ubuntu)-为什么弃用ubuntu,而选择基于debian的kali操作系统 注意: 要先装windows,再装linux,不然linux的启动分区会被覆盖掉。为什么双系统要先装windows呢? 在一个新硬盘上&#xff0…

node.js npm 安装和安装create-next-app -windowsserver12

1、官网下载windows版本NODE.JS https://nodejs.org/dist/v20.17.0/node-v20.17.0-x64.msi 2、安装后增加两个文件夹目录node_global、node_cache npm config set prefix "C:\Program Files\nodejs\node_global" npm config set prefix "C:\Program Files\nod…

Android PopupWindow.showAsDropDown报错:BadTokenException: Unable to add window

Android PopupWindow.showAsDropDown报错:BadTokenException: Unable to add window Android PopupWindow.showAsDropDown报错: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity ru…

vue-实现rtmp直播流

1、安装vue-video-player与videojs-flash npm install vue-video-player -S npm install videojs-flash --save 2、在main.js中引入 3、组件中使用 这样就能实现rtmp直播流在浏览器中播放,但有以下几点切记,不要入坑 1.安装vue-video-player插件一定…

读数据湖仓02数据抽象

1. 不同类型的数据 1.1. 不同类型的数据在存储方面有各自的特性,这些特性极大地影响了数据在数据湖仓中的存储和使用方式 1.2. 结构化数据 1.2.1. 在企业等组织中,只有少量的数据是结构化数据 1.2.2. 结构化数据是基于事务的数据,是组织日…

[Redis][哨兵][下]详细讲解

目录 1.安装部署(基于Docker)1.编排Redis主从节点2.编排Redis-Sentinel节点 2.重新选举1.redis-master宕机之后2.redis-master重启之后3.总结 3.选举原理4.总结 1.安装部署(基于Docker) 1.编排Redis主从节点 编写docker-compose.yml 创建/root/redis/docker-compose.yml&…