Django学习(三)——创建主页

Django网页创建三部曲
本文详述了使用Django框架创建网页的三个核心步骤:定义URL模式、编写视图函数及创建模板。通过实例解析,展示了如何将URL映射到视图,以及视图如何调用模板生成网页。

参考书籍:《Python编程从入门到实践》—Eric Matthes

使用Django创建网页的过程通常分为三个阶段:定义URL、编写视图和编写模板。

  • URL模式描述了URL是如何设计的,让Django知道如何将浏览器请求与网站URL匹配,以确定返回哪个网页。
  • 每个URL都被映射到特定的视图——视图函数获取并处理网页所需的数据。视图函数通常调用一个模板,后者生成浏览器能够理解的网页

映射URL

URL(Uniform Resource Locator,统一资源定位符)是WWW的统一资源定位标志。

组成:资源类型、存放资源的主机域名、资源文件名。(或者协议、主机、端口、路径)


目前我们的URL(https://localhost:8000/)映射到的是Django网站。所以我们现在需要将它映射到我们自己的主页。

打开learning_logs目录下的urls.py文件可以看到:

from django.conf.urls import include, url
from django.contrib import admin
 
urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
]
  • 前两行导入了为项目和管理网站管理URL的函数和模块
  • urlpatterns变量包含项目中应用程序的URL
  • admin.site.urls是一个模块,定以了可在管理网站中请求的所有URL

我们在urlpatterns列表里的末尾加上

url(r'', include(('learning_logs.urls'), namespace='learning_logs')),

用来包含模块learning_logs.urls。参数namespace的作用是将learning_logs的URL与项目其他URL区分开。


现在我们需要在文件夹learning_logs中创建另一个urls.py文件(注意目录!!!)

from django.conf.urls import url
from . import views 
urlpatterns = [
    #主页
    url(r'^$',views.index,name='index'),
]
  • 导入url的目的需要使用它来将URL映射到视图

  • 句点让Python从当前的urls.py的文件夹中导入视图

  • 变量urlpatterns是一个列表,包含可在应用程序learning_logs中请求的网页

URL模式实则是对函数url()的一个调用。url()接受三个实参。第一个是正则表达式,第二个实参指定了要调用的视图函数。第三个参数将这个URL模式的名称指定为index,让我们能够在代码的其他地方引用它。

正则表达式(regex)

r'^$':

  • r的作用是让python将接下来的字符串视为原始字符串
  • 脱字符^让python查看字符串的开头
  • $让python查看字符串的结尾。

这个表达式的意思是只查找开头和末尾之间没有任何东西的URL即基础URL(http://localhost:8000/)

编写视图

视图函数接受请求中的信息,准备好生成网页所需的数据,再将这些数据发送给浏览器。这通常是使用定义了网页是什么样的模板实现的。

打开learning_logs目录下的views.py

目前只导入了函数render(),它根据视图提供的数据渲染响应:

from django.shortcuts import render

为主页编写视图

def index(request):
    """学习笔记的主页"""
    return render(request,'learning_logs/index.html')

URL请求与我们刚才定义的模式匹配时,Django将在文件views.py中查找函数index(),再将请求对象传递给这个视图函数。在这里,我们不需要处理任何数据,因此这个函数只包含调用 render()的代码。这里向函数render()提供了两个实参:原始请求对象以及一个可用于创建网页的模板

编写模板

在文件夹learning_logs中新建一个文件夹,并将其命名为templates。在文件夹templates中,再新建一个文件夹,并将其命名为learning_logs。

即learning_logs->templates->learning_logs

新建文件index.html

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

这里定义了两个锻炼:第一个充当标题,第二个阐述了用户可使用学习笔记做什么。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值