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.mzph.cn/pingmian/54524.shtml

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

相关文章

大模型深入行业,正从“星星之火”走向“燎原之势”

2024年,当越来越多的企业从赶大模型的潮流与炫大模型的参数规模开始转移到行业落地时,华为携生态伙伴用大模型深耕行业的成果俨然遍地开花。 在9月19日华为全联接大会2024大会上同期举办的华为云AI用户峰会上,华为云为28个创新项目颁发了“A…

【计算机组成原理】主存储器深度解析

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…

VulnHub-Bilu_b0x靶机笔记

Bilu_b0x 靶机 概述 Vulnhub 的一个靶机,包含了 sql 注入,文件包含,代码审计,内核提权。整体也是比较简单的内容,和大家一起学习 Billu_b0x.zip 靶机地址: https://pan.baidu.com/s/1VWazR7tpm2xJZIGUS…

滑动窗口(6)_找到字符串中所有字母异位词

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 滑动窗口(6)_找到字符串中所有字母异位词 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记,欢迎大家在评论区交流讨论&#x1f4…

基于JAVA+SpringBoot+Vue的线上辅导班系统的开发与设计

基于JAVASpringBootVue的线上辅导班系统的开发与设计 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接&#…

Java 微服务框架 HP-SOA v1.1.4

HP-SOA 功能完备,简单易用,高度可扩展的Java微服务框架。 项目主页 : https://www.oschina.net/p/hp-soa下载地址 : https://github.com/ldcsaa/hp-soa开发文档 : https://gitee.com/ldcsaa/hp-soa/blob/master/README.mdQQ Group: 44636872, 66390394…

【C++算法】分治——快排

颜色分类 题目链接 颜色分类https://leetcode.cn/problems/sort-colors/description/ 算法原理 代码步骤 class Solution { public:void sortColors(vector<int>& nums) {int n nums.size();int i 0, left -1, right n;while(i < right){if(nums[i] 0) s…

Maven笔记(一):基础使用【记录】

Maven笔记&#xff08;一&#xff09;-基础使用 Maven是专门用于管理和构建Java项目的工具&#xff0c;它的主要功能有&#xff1a; 提供了一套标准化的项目结构 Maven提供了一套标准化的项目结构&#xff0c;所有IDE(eclipse、myeclipse、IntelliJ IDEA 等 项目开发工具) 使…

Linux通过yum安装Docker

目录 一、安装环境 1.1. 旧的docker包卸载 1.2. 安装常规环境包 1.3. 设置存储库 二、安装Docker社区版 三、解决拉取镜像失败 3.1. 创建文件目录/etc/docker 3.2. 写入镜像配置 https://docs.docker.com/engine/install/centos/ 检测操作系统版本&#xff0c;我操作的…

openFrameworks_如何使用ofxXmlSettings和ofxGui来创建识别界面

效果图&#xff1a; 代码及详解 1.添加两个插件的头文件: #include "ofxGui.h" #include "ofxXmlSettings/src/ofxXmlSettings.h" 2.添加GUI部分&#xff0c;然后在.h声明右边的openframeworks的UI部分&#xff0c;包括面板ofxPanel&#xff0c;按钮ofx…

深入理解 JavaScript 三大作用域:全局作用域、函数作用域、块级作用域

一. 作用域 对于多数编程语言&#xff0c;最基本的功能就是能够存储变量当中的值、并且允许我们对这个变量的值进行访问和修改。那么有了变量之后&#xff0c;应该把它放在哪里、程序如何找到它们&#xff1f;是否需要提前约定好一套存储变量、访问变量的规则&#xff1f;答案…

深入探究 Flask 的应用和请求上下文

目标 读完本文后&#xff0c;您应该能够解释&#xff1a; 什么是上下文哪些数据同时存储在应用程序和请求上下文中在 Flask 中处理请求时&#xff0c;处理应用程序和请求上下文所需的步骤如何使用应用程序和请求上下文的代理如何在视图函数中使用current_app和代理request什么…

并发编程多线程

1.线程和进程的区别&#xff1f; 进程是正在运行程序的实例&#xff0c;进程中包含了线程&#xff0c;每个线程执行不同的任务不同的进程使用不同的内存空间&#xff0c;在当前进程下的所有线程可以共享内存空间线程更轻量&#xff0c;线程上下文切换成本一般上要比进程上下文…

如何用3个月零基础入门网络安全?_网络安全零基础怎么学习

前 言 写这篇教程的初衷是很多朋友都想了解如何入门/转行网络安全&#xff0c;实现自己的“黑客梦”。文章的宗旨是&#xff1a; 1.指出一些自学的误区 2.提供客观可行的学习表 3.推荐我认为适合小白学习的资源.大佬绕道哈&#xff01; →点击获取网络安全资料攻略← 一、自学…

某省公共资源交易中心爬虫逆向分析

目标网站 aHR0cHM6Ly95Z3AuZ2R6d2Z3Lmdvdi5jbi8jLzQ0L3NjenQteHEvP3VzZXJJZD02NzM4OTg2MzkyNjA3NzAzMDQmcm93SWQ9NTI1MDYyMDI2ODg0NzE2NTQ0JnRpbWU9MjAwOC0xMS0yNiZjZXJ0aWZpY2F0ZU5vPTkxNDQwOTA0NjgyNDI2MzU4QyZjZXJ0aWZpY2F0ZVR5cGU9Mjg 一、抓包分析 请求头参数加密 二、…

校园社区服务系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;发布类型管理&#xff0c;互帮互助管理&#xff0c;物品分类管理&#xff0c;闲置交易管理&#xff0c;购买物品管理&#xff0c;反馈信息系统管理 微信端账号功能包括&#xff1…

高等代数笔记(2)————(弱/强)数学归纳法

数学归纳法的引入情景其实很简单&#xff0c;就是多米诺骨牌。 推倒所有多米诺骨牌的关键就是推倒第一块&#xff0c;以及确保第一块倒下后会带动第二块&#xff0c;第二块带动第三块&#xff0c;以此类推&#xff0c;也就是可以递推。由此我们可以归纳出所有的多米诺骨牌都可…

deepin桌面版连接windows远程桌面

在Linux系统中&#xff0c;要登录到Windows系统&#xff0c;通常可以使用远程桌面协议(RDP)。你需要在Linux系统上安装RDP客户端。 使用如下命令安装rdp协议&#xff1a; sudo apt-get install xrdp 安装成功后&#xff0c;启动rdp服务。 sudo systemctl start xrdp 有了r…

go解决引入私有包报错“Repository owner does not exist“的两种方式

当你写好引入的私有包,执行go mod tidy报错: Gogs: Repository owner does not exist fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 目前我的两种解决方案: 一、拉群整个…

江协科技STM32学习- P14 示例程序(定时器定时中断和定时器外部时钟)

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…