1.何为MTV
MTV开发模式整体结构图:
每一部分对应到工程的文件分别是:
文件 | 对应部分 |
---|---|
models.py | 某个app的模型 |
views.py | 某个app的视图 |
urls.py | 路由部分 |
M(models)和V(views)都有了,T(templates)呢?
templates就是一些HTML,js,css文件。
2.修改之前例子,添加templates
修改之前的例子,使其能够返回一个HTML页面。
2.1 新建一个app并在app目录下增加子目录templates
1.新建app:
$ python manage.py startapp hello2app
2.在app目录下增加子目录templates
$ cd hello2app/
$ mkdir templates
$ ls
__init__.py apps.py models.py tests.py
admin.py migrations/ templates/ views.py
3.将之前写好的HTML文件拷贝到templates目录下
2.2 修改app目录下的views.py
在view.py增加url的处理函数:
def hello(request):
return render(request, "write.html")
2.3 新建本地路由,并指定与操作之间的关系
在app目录下新建urls.py文件。
from django.urls import path
from . import views
urlpatterns = [
path('', views.hello)
]
2.4 修改全局路由,在全局路由中增加对本地路由的引用
修改mysite/mysite/urls.py
,增加对本地路由的引用:
from django.contrib import admin
from django.urls import include, path
from helloapp import views
urlpatterns = [
path('index2/', include('hello2app.urls')), #增加对本地路由的引用
path('index/', views.hello),
path('admin/', admin.site.urls),
]
2.5 修改settings.py中的TEMPLATES
修改DIRS:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'hello2app/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',
],
},
},
]
2.6 运行server
$ python manage.py runserver
返回结果:
2.7 步骤总结
1.在app子目录下增加templates文件夹
2.修改app子目录下的views.py文件,增加url的处理函数
3.在app子目录下增加本地urls.py
4.在全局路由中增加对本地路由的引用
5.修改settings.py中的TEMPLATES字段