首页 > 其他分享 >Django框架一站式保姆级教程(四)

Django框架一站式保姆级教程(四)

时间:2024-12-21 14:02:24浏览次数:5  
标签:选项 教程 一站式 models 模型 Django 字段 数据库

Models–模型(上)

一.模型

1.1 概述

模型(Model)是Django 为了构建和操纵 Web 应用的数据而提供的抽象层
模型是数据交互的接口,用于表示和操作数据表及记录
每个模型都是一个Python类,这些类继承django.db.models.Model

1.2 MySQL 数据库 API 驱动程序

第一步:安装Python开发库和头文件及MySQL客户端开发库和头文件

sudo apt-get install python3-dev default-libmysqlclient-dev

第二步:安装mysqlclient

pip3 install mysqlclient

Django支持MySQL8.0及以上版本

安装时如果有什么问题,可以参考我的文章<MACBOOK(M1芯片)安装mysqlclient报错error: subprocess-exited-with-error的解决办法>

1.3 模型的操作步骤

第一步:通过MySQL或MariaDB客户端创建数据库,如

mysql>CREATE DATABASE IF NOT EXISTS knowbase;

第二步:通过Django项目内的settings.py进行数据库配置
第三步:通过Django项目应用目录下的models.py文件内创建模型
第四步:通过python3 manage.py进行数据迁移

1.4 配置数据库

在setttings.py中的DATABASES进行配置,代码如下:

DATABASES = {
   
    'default':{
   
        # 要使用的数据库后端
        'ENGINE':'django.db.backends.mysql',
        'HOST':'数据库服务器的IP地址',
        'PORT':'端口号',
        'USER','数据库管理员用户名',
        'PASSWORD':'数据库管理员密码',
        'NAME':'数据库名称',    
    }
}

参照登录MySQL服务器的命令

$ mysql -h主机名称 -P端口号 -u用户名 -p密码 -D数据库名称
1.5 创建模型

Django中创建模型的语法结构是:

from django.db import models

class ModelName(models.Model):
    fieldname1 = models.FieldType([options[,...]])
    fieldname2 = models.FieldType([options[,...]])
    # more fields...

    class Meta:
        MetaOption = value

其中:
● ModelName指要创建的模型类的名称(即数据表名称)
● fieldname指定义的字段名称
● FieldType用于定义字段的数据类型
● options用于定义字段的选项,如是否允许为空、字段默认值、数据类型的长度限制、是否为主键等
● class Meta是模型的内部类,用于定义"所有不是字段的东西",如数据表名称,排序字段及排序方式等

二.字段

2.1 字段命名限制

● 字段的名称不能是 Python 保留字,这会导致 Python 语法错误
● 字段名称不能包含连续的多个下划线,原因在于 Django 查询语法的工作方式
● 字段名称不能以下划线结尾,原因在于 Django 查询语法的工作方式
● SQL保留字,例如 JOIN, WHERE 或 SELECT, 是可以被用作模型字段名称的(但不建议)

2.2 字段类型

Django的字段类型与MySQL数据库的对应关系如下:
![在这里在这里插入图片描述
在这里插入图片描述

2.3 字段选项

在Django中,模型字段可以使用各种选项来控制其行为和属性。以下是一些常用的模型字段选项:
● Field.primary_key
该选项用于表示字段是否为主键约束,如:

id = models.PositiveSmallIntegerField(primary_key=True)

● Field.unique
该选项用于表示字段是否为唯一约束,如:

username = models.CharField(max_length=50,unique=True)

● max_length
该选项用于指定字段类型字段允许的最大字符数,如:

email = models.EmailField(max_length=50)

● Field.default
该选项用于指定字段的默认值,如:

salary = models.DecimalField(max_digits=8,decimal_places=2,default=0.00)

● Field.null
该选项用于指定字段是否为空,默认为False,如:

telephone = models.CharField(max_length=12,null=True)

● Field.db_column
默认情况下Django 将使用变量名称作为字段名称,该选项用于指定字段名称,如:

faceurl = models.CharField(max_length=50,db_column='avatar')

• Field.choices
该选项用于指定字段的枚举值,其类型为元组类型,如:

YEAR_IN_SCHOOL_CHOICES = [
    ('FR', 'Freshman'

标签:选项,教程,一站式,models,模型,Django,字段,数据库
From: https://blog.csdn.net/lyzhangxiaowei/article/details/144624495

相关文章

  • 通过浏览器JS跳转到微信小程序教程 代码支持移动端和pc端 复制即用!
    如何通过浏览器JS跳转到微信小程序?Tag:微信小程序跳转浏览器跳转小程序JS与小程序集成效果展示需求:最近在做一个H5页面,需要在用户点击某个按钮时跳转到对应的小程序页面,同时为了优化用户体验,我还需要在页面加载时显示跳转提示。这种需求在某些活动页或推广页中非......
  • 【Django】测试带有 CSRF 验证的 POST 表单 API 报错:Forbidden (CSRF cookie not set.
    【Django】测试带有CSRF验证的POST表单API报错:Forbidden(CSRFcookienotset.)问题描述Django使用Apifox测试POST表单报错。Forbidden(CSRFcookienotset.):/api/parse[20/Dec/202415:17:25]"POST//api/parseHTTP/1.1"4032855原因分析要在使......
  • 【2024最新】基于Python+Mysql+django的公务员考试信息管理系统Lw+PPT
    作者:计算机搬砖家开发技术:SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。专栏推荐:SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码精品专栏:Java精选实战项目源码、Python精选实战项目源码、大数据精选实战项目源码......
  • 【2024最新】基于Python+Mysql+django的宾馆管理系统Lw+PPT
    作者:计算机搬砖家开发技术:SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。专栏推荐:SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码精品专栏:Java精选实战项目源码、Python精选实战项目源码、大数据精选实战项目源码......
  • 【2024最新】基于Python+Mysql+django的高校教室管理系统Lw+PPT
    作者:计算机搬砖家开发技术:SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。专栏推荐:SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码精品专栏:Java精选实战项目源码、Python精选实战项目源码、大数据精选实战项目源码......
  • Django:一个王者级Web开发Python框架
    大家好啊!今天我要和大家分享Python世界中的"网站开发利器"——Django框架。它就像是一个全能的网站建筑师,不仅自带了后台管理系统、数据库接口、用户认证等功能,还能帮我们处理各种安全问题。使用Django,我们可以快速搭建一个功能完善的网站。无论你是想做个人博客,还是想开发企业......
  • JAVA基础教程-(一)JAVA面向对象编程
    教程目录JAVA基础教程JAVA面向对象编程(一)一、面向过程与面向对象1.1、何谓“面向对象”的编程思想?二、Java语言基本元素:类和对象2.1、Java类及类的成员三、对象的创建和使用3.1、对象的产生3.2、内存解析3.3、匿名对象JAVA基础教程J......
  • django旅游网站-毕业设计源码33190
    目 录1引言1.1研究背景和意义1.2开发现状1.3论文结构与章节安排2旅游网站系统分析2.1可行性分析2.1.1法律可行性分析2.1.2技术可行性分析2.1.3经济可行性分析2.1.4社会可行性分析2.2系统功能分析2.2.1功能性分析2.3系统性能需求分析2.3.1......
  • AI开发:支持向量机(SVM)鸢尾花模型入门教程- Python 机器学习
    最近接触了一些数据分析的任务,越来越多地听到支持向量机(SVM),之前我们也一起学习过 AI开发:支持向量机(SVM)入门教程-Python机器学习今天我们再由浅入深的地来重温和学习这个AI算法,以便我们进一步掌握如何熟悉和使用这一AI大杀器。SVM用在哪里 --文本分类垃圾邮件过滤:通......
  • Marp 入门与教程:让你一分钟爱上Markdown写PPT的乐趣
    Marp入门与教程一、什么是Marp?Marp是一个基于Markdown的开源幻灯片制作工具,可以轻松将Markdown文档转换为精美的幻灯片。其核心是Marpit框架,支持可定制主题、多种输出格式和动态功能。与LaTeX的Beamer比较:对比项MarpLaTeX(Beamer)易用性使用Markdown语......