【day 12】python编程:从入门到实践学习笔记-基于Django框架的Web开发-Django入门(三)

时间:2020-12-02 19:21:16

第十八章 Django入门(三)

创建网页:学习笔记主页

使用django创建网页通常分三个阶段:定义URL、编写视图和编写模板
首先必须定义URL模式,其描述了URL是如何设计的,让django知道如何将浏览器请求与网站URL匹配,以确定返回哪个网页。每个URL都被映射到特定的视图——视图函数获取并处理网页所需的数据。视图函数通常调用一个模板,后者生成浏览器能够理解的网页。

映射URL

#learning_log/urls.py
from django.conf.urls import url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'', include('learning_logs.urls', namespace='learning_logs')),
]

我们添加了一行代码来包含模块learning_logs.urls。实参namespace能够将learning_logs的URL同项目中的其他URL区分开来。
默认的urls.py保存在learning_log文件夹中,我们需要在learning_logs中创建另外一个urls.py如下

#learning_logs/urls.py
from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

此模块中,urlpatterns变量是一个列表,包含可在应用程序learning_logs中请求的网页。
URL模式是一个对函数url()的调用,其包含三个实参:
+ 第一个是正则表达式r'^$'中的r让python把单引号对里面的字符串视为原始字符串;脱字符^表示查看字符串的开头;美元符号$表示查看字符串的末尾;整个字符表达式表示查找开头和末尾之间没有任何东西的url。
+ 第二个是指定要调用的视图函数。如果请求的URL与前述正则表达式匹配,django将调用views.index。
+ 第三个是将这个URL模式的名称指定为index,让我们能够在代码的其他地方引用他。当需要提供到这个主页的链接时,我们都将使用这个名称而不编写URL。

编写视图
视图函数接受请求中的信息,准备生成网页所需的数据,并将这些数据发送给浏览器。
修改并添加:

#learning_logs/views.py
from django.shortcuts import render

def index(request):
    return render(request, 'learning_logs/index.html')

函数render()根据视图提供的数据渲染相应。
当URL请求与我们定义的模式匹配时,django将在文件views.py中查找函数index(),再将请求对象传递给这个视图函数。
而这里的函数render()提供了两个实参:原始请求对象以及一个可用于创建网页的模板。

编写模板
模板定义了网页的结构。模板指定了网页是啥样的。而每当网页被请求时,django将填入相关的数据。
在文件夹learning_logs中创建文件夹templates,又在这个文件夹中创建文件夹learning_logs。接着在最里面的文件夹learning_logs中新建一个index.html。

<!-- index.html -->
<p>Learning Log</p>
<p>Learning Log helps you keep track of your learning, for any topic you're
learning about.</p>

最后在虚拟环境中runserver,并打开http://127.0.0.1:8000/可以看到
【day 12】python编程:从入门到实践学习笔记-基于Django框架的Web开发-Django入门(三)