MTV模式
model-template-view(模型-模板-视图)模式,模板是一个文本,用于分离文档的表现形式和内容。MTV 模式本质上与 MVC (Mode-View-Controller)相同,都是让各组件保持低耦合的关系。
MVC模式中:
- M:模型(Model),数据存取层,负责业务对象和数据库对象。
- V:视图(View),与用户的交互,负责显示与怎样显示。
- C:控制器(Controller),接受用户动作,调用模型,输出相应视图。三者像插件一样以松耦合的形式连接在一起。
MTV 具体定义如下:
M:模型(Model),负责业务对象和数据库的关系映射。
T:模板(Template),负责如何把页面展示给用户。
V:视图(View),负责业务逻辑,并在适当时候调用模型和模板。
URL分发器
URL 分发器的作用是将页面请求分发给不同的视图(View)处理,视图再调用相应的模型(Model)和模板(Template)。
初始设置
修改配置文件
在settings.py 文件中修改配置,
- 修改允许访问的 IP 地址
ALLOWED_HOSTS=['*'] #增加一个匹配任意主机地址的字符串
- 修改数据库配置项
用mysql数据库替代默认的sqlite数据库。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 引擎由 Django 提供
'NAME': 'myproject', # 数据库的名字
'USER': 'root', # 用户默认为 root
'PASSWORD': '', # 没有设置密码
'HOST': '127.0.0.1', # 本地连接,固定 IP
'PORT': 3306 # 固定端口号
}
}
- 模板文件路径设置
浏览器发送请求给服务器,服务器派遣对应的视图类处理请求,需要模板文件提供支持返回响应,模板相关的设置在TEMPLATES列表下,该列表中默认有一个字典对象,其中DIRS字段的值是列表,该值对应模板文件的相对路径。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['myproject/templates'], #在此修改模板文件的相对路径
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
- 静态文件路径设置
模板文件需要调用静态资源进行渲染,静态资源的配置项为STATICFILES_DIRS,
它是一个列表,里面要写入静态资源的路径。该配置项不会自动生成,需要新建:
STATICFILES_DIRS = ['myproject/static']
创建应用
进入myproject文件夹下输入命令:
$ python3 manage.py startapp [appname]
再次编辑 myproject/settings.py 文件,修改INSTALLED_APPS元组,该配置项用于注册应用,将 ‘appname’ 字符串写入其中:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'share',
]
初始化数据库
先设置mysql数据库:…未完待续
针对每个 Django 项目,都有一些项目必需的数据表,执行如下命令创建它们的迁移文件并在 myproject 数据库中创建它们:
$ python3 manage.py makemigrations
$ python3 manage.py migrate
启动项目
在启动项目前先检查项目是否有疏漏,no issues则说明项目可以正常启动:
$ python3 manage.py check
启动项目使用runserver选项,后面的参数为主机地址:端口号,我们使用 0:8080 表示任意 IP 地址的 8080 端口启动程序:
$ python3 manage.py runserver 0:8080
文件上传和分享功能
实现视图功能
Django 提供了很多视图基类,以便于根据它们快速编写所需要的视图类。我们写的视图类只需要继承这些基类,便可以实现很强大的功能。
编辑 appname/views.py 文件 ,将以下代码写入其中:
from django.shortcuts import render
from django.views.generic import TemplateView,ListView
# 创建视图类需要基础视图基类

最低0.47元/天 解锁文章
435

被折叠的 条评论
为什么被折叠?



