美文网首页Python学习日志python进阶Java-Python-Django社区
【day 12】python编程:从入门到实践学习笔记-基于Dj

【day 12】python编程:从入门到实践学习笔记-基于Dj

作者: 苍云横渡 | 来源:发表于2018-03-24 21:10 被阅读111次

学习笔记目录
【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/可以看到

相关文章

网友评论

    本文标题:【day 12】python编程:从入门到实践学习笔记-基于Dj

    本文链接:https://www.haomeiwen.com/subject/sqcccftx.html