初识Django的模型层

目录

目录

前言

一.模型层是什么

二.为什么需要模型层

三.创建博客文章模型

四.初识Django Shell 

五.初识Django Admin

六.实现博客数据返回页面


前言

通过前面的Django学习,我们了解了Django采用了MVT的软件模式,下面我们来学习Django的模型层。

一.模型层是什么

在我们的网站开发里,总是不可避免的需要结合视图和数据来进行开发。因此模型层位于视图层和数据库之间,将python对象转化成数据库表,并且将python的数据库表里面的记录转化成python的对象数据进行返回。

二.为什么需要模型层

1. 在开发过程中有不同的数据库, 如MySQL,SQLite,Oracle....这些数据库之间各有不同,模型层可以屏蔽同数据库之间的差异,使得开发者更加专注于业务逻辑的开发.

 2.提供更多的便捷工具有助于开发,比如说,数据库迁移,数据库数据备份.如果说没有模型层的话,会直接对数据库进行操作,但是有了模型层我们可以利用提供的工具进行对数据库的一些操作,更加的便捷.

三.创建博客文章模型

通过前面对模型层的学习,下面我们进行模型层的实际操作,进行博客文章的创建。

首先,我们认识一下数据库的常用类型和属性

数字类型:integerFidle       文本类型:TextField      日期类型:DateTimeField
自增ID: AutoField             主键定义:primary_key

 在应用下的model.py文件下创建模型,代码如下:

from django.db import models# Create your models here.
class Title(models.Model):# 文章idtitle_id = models.AutoField(primary_key=True)# 文章标题title_name = models.TextField()# 文章内容title_content = models.TextField()# 文章摘要title_content1 = models.TextField()# 发布日期publish_date = models.DateTimeField(auto_now=True)# auto_now=True 不设置日期时间的时候,默认为当前日期时间def __str__(self):return self.title_name

在本地运行 python manage.py makemigrations进行数据库模型迁移,然后通过python manage.py migrate运行迁移文件同步到数据库。

四.初识Django Shell 

Django Shell可以测试模型是否可以使用,方便开发,调试,Debug,继承了Django的项目环境。

在控制台进行操作,代码如下:

python manage.py shell # 进入shell环境
from mookapp.models import Title
a=Title()
a.title_name = '这是Django Shell测试'  # 写入内容
a.save()  # 保存到数据库
titles = Title.objects.all()
title = titles[0]  # 可以通过索引获取第一篇文章
print(titles.title_name)

五.初识Django Admin

Django Shell用来添加小量的数据简单,但是数据多的时候就会显得比较复杂,这是后我们可以用Django Admin来进行添加,还可以对页面进行管理。主要功能:认证用户,显示管理模型,校验输入。

在控制台输入python manage.py createsuperuser 设置完用户名和密码后,运行工程文件,然后再浏览器输入http://127.0.0.1:8000/admin

然后进入应用下的admin.py文件,输入以下代码进行连接数据库:

from .models import Title
admin.site.register(Title)

重新运行进入管理界面

六.实现博客数据返回页面

 通过以上的学习,我们可以完成一个小项目,将数据返回到页面进行展示.

在应用下的views.py文件输入以下代码:

def title_concent(request):atitle = Title.objects.all()[0]title_id = atitle.title_idtitle_name = atitle.title_nametitle_count = atitle.title_countpublish_date = atitle.publish_datereturn HttpResponse("title_id: %s, title_name: %s,"" title_count: %s, publish_date: %s"% (title_id, title_name, title_count, publish_date))

 然后通过对项目路由和应用路由的配置进行展示

项目路由

urlpatterns = [path('admin/', admin.site.urls),path('mook/', include('mookapp.urls'))
]

应用路由

urlpatterns = [path('mookapp', mookapp.views.title_concent)
]

最后在浏览器输入http://127.0.0.1:8000/mook/mookapp

展示结果如下图: 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部