Django模型入门

Django模型入门

为了能够学会使用Django模型,本节通过构建一个实际的Django模型来帮助读者尽快入门。

3.2.1  定义模型

既然Django模型实现了ORM功能,那么它就是对数据库实例的描述和实现。下面,我们通过一个简单的实例进行讲解。

如果需要设计实现一个简单的个人信息模型(名称为PersonInfo),我们一般会定义这个个人信息模型的模型名称、字段名称、字段类型等参数,如表3.1所示。

3.2.2  Django模型代码

根据表3.1中定义的模型数据,设计实现的Django模型代码如下:

【代码3-1】

01  from django.db import models
02  
03  class PersonInfo(models.Model):
04      name = models.CharField(max_length=30)
05      gender = models.CharField(max_length=16)
06      age = models.CharField(max_length=8)

【代码分析】

在第01行代码中,通过调用django.db模块导入了models对象(Django模型对象)。

第03~06行代码定义了一个PersonInfo类,并通过models对象调用CharField()方法定义了name(姓名)、gender(性别)和age(年龄)3个字段,且每个字段的长度不一。这3个字段(name、gender和age)都相当于类(PersonInfo)的属性。这个类属性其实就相当于实体数据库中的数据项(也称数据列)。

【代码3-1】所定义的Django模型,最终会在底层数据库中创建一张数据库表(Table),具体代码如下:

【代码3-2】

01  CREATE TABLE myapp_personinfo (
02      "id" serial NOT NULL PRIMARY KEY,
03      "name" varchar(32) NOT NULL,
04      "gender" varchar(16) NOT NULL
05      "age" varchar(8) NOT NULL
06  );

【代码分析】

在第01行代码中定义的表名称myapp_ personinfo是自动从某些模型元数据中派生出来,用户也可以自定义表名称。

在第02行代码中,id字段(索引)会被自动添加,这也是MySQL数据库自动生成的。

3.2.3  使用Django模型

定义好了Django模型,只有通知Django框架要使用该模型后,该模型才能够生效。具体方式是修改settings.py配置文件中的INSTALLED_APPS配置项,在该配置项中添加models.py文件中定义的Django模块名称。

下面举一个简单的配置例子。假如新建的Django模型位于项目中的myapp应用中,该myapp应用是通过django-admin manage.py startapp myapp命令创建的,则项目的settings.py配置文件中的INSTALLED_APPS配置项应该设置如下:

【代码3-3】

01  INSTALLED_APPS = [
02      #...
03      'myapp',		// 添加 'myapp' 应用
04      #...
05  ]

【代码分析】

在第03行代码中,myapp应用就是通过调用django-admin manage.py startapp myapp命令创建的。

文节选自《Django 5企业级Web应用开发实战(视频教学版)》,获出版社和作者授权发布。

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

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

相关文章

苹果全力升级:用专注AI的M4芯片彻底改造Mac系列

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

ChatGPT深度科研应用、数据分析及机器学习、AI绘图与高效论文撰写

2022年11月30日,可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5,将人工智能的发展推向了一个新的高度。2023年4月,更强版本的ChatGPT4.0上线,文本、语音、图像等多模态交互方式使其在…

爱奇艺APP Android低端机性能优化

01 背景介绍 在智能手机市场上,高端机型经常备受瞩目,但低端机型亦占据了不可忽视的份额。众多厂商为满足低端市场的需求,不断推出低配系列手机。另外过去几年的中高端机型,随着系统硬件的快速迭代,现已经被归类为低端…

部署HDFS集群(完全分布式模式、hadoop用户控制集群、hadoop-3.3.4+安装包)

目录 前置 一、上传&解压 (一 )上传 (二)解压 二、修改配置文件 (一)配置workers文件 (二)配置hadoop-env.sh文件 (三)配置core-site.xml文件 &…

09-ARM开发板的HelloWorld

在ARM开发板上运行x86_64平台程序 前面在Ubuntu系统编译生成了X86_64平台的HelloWorld程序,通过NFS服务器,尝试在开发板上直接运行。 如图所示,程序无法正常运行,终端提示ARM开发板在执行x86架构(Intel或AMD&#xff…

人工智能|机器学习——基于机器学习的信用卡办卡意愿模型预测项目

一、背景介绍 在金融领域,了解客户的信用卡办卡意愿对于银行和金融机构至关重要。借助机器学习技术,我们可以根据客户的历史数据和行为模式预测其是否有办理信用卡的倾向。本项目通过Python中的机器学习库,构建了两个常用的分类模型&#xff…

ubuntu22下使用vscode调试redis7源码环境搭建

ubuntu22下使用vscode调试redis7源码环境搭建 ##vscode launch.json配置文件 {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid830387"version": "0.2.0&…

程序员Java.vue,python前端后端爬虫开发资源分享

bat面试资料 bat面试题汇总 提取码:724z 更多资料

你的高佣副业不二之选,开始流量卡推广,一文看懂号卡推广

在这个信息化的时代,网络已成为人们生活中不可或缺的一部分。然而,在享受着便捷与高效的同时,我们也必须面对一个现实问题,也就是高昂的流量费用。为了解决这一困扰广大用户的痛点,我们今天带来了一个极具吸引力的机会…

常用接口测试工具/免费api

一 接口编辑文档 常用的接口文档编写apipost 二 免费接口测试 api 1. thecat 含有: The Cat API - Cat as a Service The Cat API 2. public-apis 进入页面往下拉 三 常用接口测试工具 postman 四 常用接口性能测试工具 Jmeter,loadrunner

2.0 Hadoop 运行环境

2.0 Hadoop 运行环境 分类 Hadoop 教程 由于 Hadoop 是为集群设计的软件,所以我们在学习它的使用时难免会遇到在多台计算机上配置 Hadoop 的情况,这对于学习者来说会制造诸多障碍,主要有两个: 昂贵的计算机集群。多计算机构成的…

微服务(基础篇-008-Elasticsearch分布式搜索【上】)

目录 初识elasticsearch(1) 了解ES(1.1) 倒排索引(1.2) es的一些概念(1.3) 安装es、kibana(1.4) ik分词器(1.5) ik分词器的拓展…