Django中的模型类设计及展示示例详解

django中设计数据模型类是基于ORM的对象关系映射更方便的进行数据库中的数据操作。

  • 对象关系映射
  • 把面向对象中的类和数据库表--对应,通过操作类和对象,对数表实现数据操作,不需要写sql,由ORM框架生成
  • django实现了ORM框架,在项目中与数据库之间产生桥梁作用
  • django数据库定义模型的步骤如下:
python manage.py makemigrations
python mange.py migrate
  • 在应用models.py中编写模型类,继承models.Model类
  • 在模型类中,定义属性,生成对应的数据库表字段
  • 属性名 = models.字段类型
  • 字段类型 -- 一旦修改类型就需要重新迁移

AutoField: 自动增长,通常不需要指定,django自动创建名为id的自动增长属性
CharField: 字符串,必须指定的参数: max_length 最大字符个数
TextFiled: 大文本字段,一般超过4000个字符
IntegerField: 整形
BooleanField: 布尔,支持Null,True
NullBooleanField: 支持Null,True,False
DateTimeField: 日期时间
FileField: 上传文件字段
ImageField: 继承与FileFiled,对上传的内容进行校验,确保是有效地图片
ForeignKey: 外键,建立一对多关系

from django.db import models

# Create your models here.

class Subject(models.Model):
 """学科模型类"""
 nu = models.AutoField(primary_key=True)
 name = models.CharField(max_length=20,verbose_name = '学科名称')
 intro = models.CharField(max_length=1000,verbose_name = '学科介绍')

 class Meta:
  db_table = 'tb_subject'
  verbose_name = '学科'
  verbose_name_plural = verbose_name

 def __str__(self):
  """定义数据对象的显示信息"""
  return self.name

在pycharm终端中执行数据库建立迁移

python manage.py makemigrations

python manage.py migrate

migrations文件中会建立一个.py文件

我们可以通过django自带的admin后台来看见我们所创建的数据模型类。

Aadmin

使用时先创建一个用户名和密码

在pycharm终端中输入命令

python manage.py createsuperuser

根据提示输入用户名,邮箱,密码。

并且在admin.py注册模型类 并且显示该有的数据列表

然后开启django项目输入 http://127.0.0.1 :8000/admin/

用户名和密码填写

登陆进去后就会看到创建的数据模型

点击add可以添加一些数据

会有你写的模型类

因为刚才继承了SubjectAdmin类要求显示学科的信息。

我们现在可以将模型数据映射视图,展示到html页面上。

在Views.py文件中使用Subject将数据集合拿到

在templates文件夹中创建一个index.html文件

使用django模板中的for循环将数据插入到html页面中

启动django,打开本地网址

我们可以给页面添加照片可以使得页面更好看点

添加放置照片的文件夹在更目录的同级目录下

并且在settings中对static文件夹路径加以说明

在将html页面修改

添加照片路径

然后启动django点击本地连接

接下来可以再加入模型数据库,点击学科的时候可以展示那些老师以及老师的介绍。实现了数据的多对一或者一对多。

在models.py中建立老师的模型类

在admin.py中注册老师得模型类

进入admin后台,添加老师的一些数据

现在点击科目,进入到老师的详情页,那的写html文件和修改urls.py

再templatels文件夹中建立teachers.html文件

在书写views.py,

然后点击科目获取老师数据

django的简单项目关于模型的展示设计都完成啦!!!

总结

到此这篇关于Django中的模型类设计及展示示例详解的文章就介绍到这了,更多相关django模型类设计及展示内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Flask和Django框架中自定义模型类的表名、父类相关问题分析

    本文实例分析了Flask和Django框架中自定义模型类的表名.父类相关问题.分享给大家供大家参考,具体如下: 一. Flask和Django中定义表名(执行迁移后生成)的方式和flask是不同的: 1. Django中表名的定义方式,以代码为例说明 class User(AbstractUser): # 继承自认证系统模型类 """用户模型类""" mobile = modles.CharField(max_length=11, mix_len

  • Django 模型类(models.py)的定义详解

    一. #在models.py中添加 #代码如下 from django.db import models #出版商 class Publisher(models.Model): name=models.CharField(max_length=30) address=models.CharField(max_length=50) city=models.CharField(max_length=60) state_province=models.CharField(max_length=30)

  • django的模型类管理器——数据库操作的封装详解

    模型实例方法 str():在将对象转换成字符串时会被调用. save():将模型对象保存到数据表中,ORM框架会转换成对应的insert或update语句. delete():将模型对象从数据表中删除,ORM框架会转换成对应的delete语句. 模型类的属性 属性objects:管理器,是Manager类型的对象,用于与数据库进行交互. 当没有为模型类定义管理器时,Django会为模型类生成一个名为objects的管理器,自定义管理器后,Django不再生成默认管理器objects. 管理器是D

  • 使用Django实现把两个模型类的数据聚合在一起

    Django中想要把模型类聚合得到想要的数据可以用F对象. 比如有模型类A和B,A和B之间有外键关联在一起,A是子表,B是父表(反过来没试过..因为大部分数据都是用子表的,我想是可以的),那么可以这样查: A.objects.filter(userid=3,bookid=F(bid)) 其中userid,bookid是模型类A的字段,bid是模型类B的字段. 这样操作的结果就是可以查询到userid为3且模型类A字段bookid等于模型类B字段bid的集合数据了. F对象是可以比较两个关联模型类

  • 浅谈Django中的数据库模型类-models.py(一对一的关系)

    如下所示: # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models # Create your models here. # 一对一关系:数据库中两个表中数据的对应关系 # 一个账户对应着一个联系人,而一个联系人有一个账户 # 一对一关系是通过在两个表之间定义相同的主键来完成 class Account(models.Model): username = models

  • Django中的模型类设计及展示示例详解

    django中设计数据模型类是基于ORM的对象关系映射更方便的进行数据库中的数据操作. 对象关系映射 把面向对象中的类和数据库表--对应,通过操作类和对象,对数表实现数据操作,不需要写sql,由ORM框架生成 django实现了ORM框架,在项目中与数据库之间产生桥梁作用 django数据库定义模型的步骤如下: python manage.py makemigrations python mange.py migrate 在应用models.py中编写模型类,继承models.Model类 在模

  • 与Django结合利用模型对上传图片预测的实例详解

    1 预处理 (1)对上传的图片进行预处理成100*100大小 def prepicture(picname): img = Image.open('./media/pic/' + picname) new_img = img.resize((100, 100), Image.BILINEAR) new_img.save(os.path.join('./media/pic/', os.path.basename(picname))) (2)将图片转化成数组 def read_image2(file

  • Django中Cookie设置及跨域问题处理详解

    目录 什么是Cookie(翻译:曲奇饼干) Cookie怎么来的 为什么要用Cookie Cookie的特点 怎么设置Cookie Cookie常用参数 怎么获取Cookie Cookie跨域问题处理 什么是Cookie(翻译:曲奇饼干) Cookie是存储在浏览器中的一段纯文本信息(简单的说就是浏览器缓存),用来记录用户的使用情况并将其存储在本地设备中,当用户访问服务器时会将Cookie附带上,服务端通过读取Cookie的记录,来维持用户与服务器的会话状态. Cookie怎么来的 Cookie

  • 对Django 中request.get和request.post的区别详解

    Django 中request.get和request.post的区别 POST和GET差异: POST和GET是HTTP协议定义的与服务器交互的方法.GET一般用于获取/查询资源信息,而POST一般用于更新资源信息.另外,还有PUT和DELETE方法. POST和GET都可以与服务器完成查,改,增,删操作. GET提交,请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接: POST提交,把提交的数据放置在HTTP包的包体中:因此,GET提交的数据会在地址栏中显示出来,而PO

  • python 中不同包 类 方法 之间的调用详解

    目录结构如下: 在hello.py中导入ORM.py这个文件的时候,采用 import ORMPackage.ORM 或者 import ORM u = User(id = 123, name='codiy', email='codiy_huang@163.com', password='123456') 两种方式均报错 错误提示: name '***' is not defined 或者 No module named ORM 解决办法: 方法一 将包所在的目录添加到sys.path路径 im

  • java中常见的6种线程池示例详解

    之前我们介绍了线程池的四种拒绝策略,了解了线程池参数的含义,那么今天我们来聊聊Java 中常见的几种线程池,以及在jdk7 加入的 ForkJoin 新型线程池 首先我们列出Java 中的六种线程池如下 线程池名称 描述 FixedThreadPool 核心线程数与最大线程数相同 SingleThreadExecutor 一个线程的线程池 CachedThreadPool 核心线程为0,最大线程数为Integer. MAX_VALUE ScheduledThreadPool 指定核心线程数的定时

  • java中Servlet监听器的工作原理及示例详解

    监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. 监听器原理 监听原理 1.存在事件源 2.提供监听器 3.为事件源注册监听器 4.操作事件源,产生事件对象,将事件对象传递给监听器,并且执行监听器相应监听方法 监听器典型案例:监听window窗口的事件监听器 例如:swing开发首先制造Frame**窗体**,窗体本身也是一个显示空间,对窗体提供监听器,监听窗体方法调用或者属性改变:

  • Pandas中八个常用option设置的示例详解

    目录 前言 1. 显示更多行 2. 显示更多列 3. 改变列宽 4. 设置float列的精度 5. 数字格式化显示 用逗号格式化大值数字 设置数字精度 百分号格式化 6. 更改绘图方法 7. 配置info()的输出 8. 打印出当前设置并重置所有选项 前言 通过pandas的使用,我们经常要交互式地展示表格(dataframe).分析表格.而表格的格式就显得尤为重要了,因为大部分时候如果我们直接展示表格,格式并不是很友好. 其实呢,这些痛点都可以通过pandas的option来解决.短短几行代码

  • vue实现列表展示示例详解

    目录 Vue 的CSS之deep语法 ::v-deep classPrefix 前缀 给元素绑定class 总结 Object.freeze 关于Vue和ts的配合问题 ISO8601和dayjs库 一. ISO8601 1. Date对象=>ISO字符串 2. ISO字符串=>Date对象 JS操作时间的库-dayjs 安装 使用 JSON.parse的返回值没有类型 Vue 的CSS之deep语法 ::v-deep 我们知道,在Vue组件的style标签里,加上scoped属性,会使写的样

  • .NET 中配置从xml转向json方法示例详解

    目录 一.配置概述 二.配置初识 三.选项模式 四.选项依赖注入 五.其它配置 六.托管模式 一.配置概述 在.net framework平台中我们常见的也是最熟悉的就是.config文件作为配置,控制台桌面程序是App.config,Web就是web.config,里面的配置格式为xml格式. 在xml里面有系统生成的配置项,也有我们自己添加的一些配置,最常用的就是appSettings节点,用来配置数据库连接和参数. 使用的话就引用包System.Configuration.Configur

随机推荐