Django创建网页的过程通常分为三个部分:1.定义URL 2.编写视图 3.编写模板
18.3.1映射URL
打开文件learning_log中的urls.py,并且添加第二段代码,具体见如下代码:
from django.conf.urls import include,url #导入管理网站的函数和模块
from django.contrib import admin
#变量urlpatterns包含项目中的应用程序的URL
urlpatterns=[
url(r'^admin/',include(admin.site.urls)), #包含模块admin.site.urls定义了可在管理网站中请求的所有URL
url(r'',include('learning_logs.urls',namespace='learning_logs')) #包含模块learning_logs.urls
]
默认的urls.py包含在文件learning_log中,在learning_logs中创建另外一个urls.py
'''定义learning_logs的URL模式'''
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$',views.index,name='index'), #urlpatterns是一个列表,包含可在应用程序learning_logs中请求的网页
]
实际的URL模式是对函数url的调用,这个函数接受三个实参。
第一个是一个正则表达式,^表示匹配字符串的开头,$表示匹配字符串的末尾,换言之这个正则表达式规定了一个开头和末尾之间没有任何东西的URL,而python忽略项目基础的URL(http://localhost:8000/),故只有它与正则表达式匹配。
第二个指定了要调用的视图函数,当URL与前面的正则表达式匹配时,Django会调用views.index类。
第三个实参将这个URL模式的名字指定为index,让我们可以在其他地应用它。
18.3.2编写视图
打开learning_logs中的views.py,进行视图的编写
这里只是导入了render函数,它根据视图提供的数据渲染响应。
当URL请求与我们刚刚定义的模式匹配时,Django会在文件views.py中查找函数index(),再将请求对象传递给这个视图函数。
from django.shortcuts import render
def index(request):
return render(request,'learning_logs/index.html') #这里函数render()提供两个实参:原始请求对象和一个可用于创建网页的模板
18.3.3编写模板
在learning_logs中------
index.html
<p>Learning Log</p>
<p>Learning Log helps you keep track of your learning,for any
topic you are learning about.</p>