学习笔记目录
【day 1】python编程:从入门到实践学习笔记-安装、变量和简单数据类型
【day 2】python编程:从入门到实践学习笔记-列表以及其操作
【day 3】python编程:从入门到实践学习笔记-if 语句(末附练习答案代码)
【day 4】python编程:从入门到实践学习笔记-字典(末附练习答案代码)
【day 5】python编程:从入门到实践学习笔记-用户输入和while循环(末附答案代码)
【day 6】python编程:从入门到实践学习笔记-函数(末附练习答案代码)
【day 7】python编程:从入门到实践学习笔记-类(末附练习答案代码)
【day 8】python编程:从入门到实践学习笔记-文件和异常(末附练习答案代码)
【day 9】python编程:从入门到实践学习笔记-测试代码(末附练习答案代码)
【day 10】python编程:从入门到实践学习笔记-Django入门(一)
【day 11】python编程:从入门到实践学习笔记-Django入门(二)
【day 12】python编程:从入门到实践学习笔记-Django入门(三)
【day 13】python编程:从入门到实践学习笔记-Django入门(四)
【day 14】python编程:从入门到实践学习笔记-用户账户(一)
【day 15】python编程:从入门到实践学习笔记-用户账户(二)
【day 16】python编程:从入门到实践学习笔记-用户账户(三)
【day 17】python编程:从入门到实践学习笔记-设计样式和部署(一)
【day 18】python编程:从入门到实践学习笔记-设计样式和部署(二)& 补充
第十八章 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/
可以看到
网友评论