目录
目录
前言
一.模型层是什么
二.为什么需要模型层
三.创建博客文章模型
四.初识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):
# 文章id
title_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可以测试模型是否可以使用,方便开发,调试,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 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_id
title_name = atitle.title_name
title_count = atitle.title_count
publish_date = atitle.publish_date
return 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
展示结果如下图: