(4)Django---模型models

本文介绍了Django中的模型概念,模型作为数据库表的抽象,每个模型类对应一个数据库表。通过ORM(对象关系映射)实现数据操作,避免直接编写SQL。详细讲解了如何创建模型、生成数据表、查看数据移植文件以及如何在视图中展示模型数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概念

Django提供了完善的模型层来创建和存取数据,它包含所储存数据的必要字段和行为,通常,每个模型对应数据库中唯一的一张表。Django模型基础知识:

  • 每个模型是一个python类,继承django.db.models.Model类(模型是以类的形式体现的);
  • 该模型的每个属性表示一个数据库表字段
  • 所有这一切,已经给了你一个自动生成的数据库访问的API。

二、ORM对象关系映射Object Relation Mapping

实现了对象数据库之间的映射,隐藏了数据访问的细节,不需要编写sql语句

三、编写models步骤

  • 在应用的根目录下创建models.py,并引入models模块(创建应用时自动创建)

  • 创建类,继承model.Model,该类即是一张数据表

  • 字段即类里边的属性(变量)   

title=models.CharField(max_length=32,default='Title')               #具体的属性可去django官网中查看 

四、生成数据表

  • 命令行中manage.py同级目录
  • 执行python manage.py makemigrations app名(可选)    app名不写默认对该项目下的所有app操作
  • django默认配置了数据库表,使用“migrate”命令进行数据迁移

D:\Python37\Scripts\guest>python manage.py migrate

Operations to perform:

  Apply all migrations: admin, auth, contenttypes, sessions

Running migrations:

  Applying contenttypes.0001_initial... OK

  Applying auth.0001_initial... OK

  Applying admin.0001_initial... OK

  Applying admin.0002_logentry_remove_auto_add... OK

  Applying contenttypes.0002_remove_content_type_name... OK

  Applying auth.0002_alter_permission_name_max_length... OK

  Applying auth.0003_alter_user_email_max_length... OK

  Applying auth.0004_alter_user_username_opts... OK

  Applying auth.0005_alter_user_last_login_null... OK

  Applying auth.0006_require_contenttypes_0002... OK

  Applying auth.0007_alter_validators_add_error_messages... OK

  Applying auth.0008_alter_user_username_max_length... OK

  Applying sessions.0001_initial... OK

、查看

  • Django会自动在app/migrations/目录下生成数据移植文件
  • 执行python manage.py sqlmigrate 应用名 文件id查看sql语句
  • 默认sqlite3的数据库在项目根目录下db.sqlite3

六、页面呈现数据

后台步骤:

View.py中import models

Article = models.Article.object.get(pk=1)

Render (request,page,{'article':article})

前端步骤:

模板可直接使用对象以及对象的.操作

{{article.title}}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值