如何使用python之django创建页面

一、创建页面

使用django创建页面的过程分为三个阶段:定义URL、编写视图和编写模板
本节目标:
1、本节内容我们将学习如何定义URL模式,了解URL模式描述了URL是如何设计的,让django知道如何将浏览器请求与网络URL相匹配,以确定返回哪个页面。
2、每个url都被映射到特定的视图,为明白其中的工作原理,我们来创建一个学习笔记的主页。

1、映射url

基础url返回默认的django网站,下面修改这一点,将这个基础url映射到“学习笔记”的主页。

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls)
]

1) admin.site.urls该模块定义了在可在管理网站中请求的所有url。
下面添加包含我们前面文章创建(传送门)的项目learning_logs的url,因此添加如下代码:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('learning_logs.urls'))
]

默认的urls.py包含在文件夹learning_log中,现在需要在文件夹learning_logs中再创建一个urls.py文件。为此,新建一个文件,使用文件名url.py将其存储在文件夹learning_logs中,再在此文件中写入如下代码:

""" 定义learning_logs的URL模式   """

from django.urls import path

from . import views

app_name = 'learning_logs'
urlpatterns = [
    # 主页
    path('', views.index, name='index')
]

通过path函数将url映射到视图
path()函数参数说明:
1)参数 ‘’ :表示请求路由
2)参数views.index: 访问views文件中的idnex函数(视图函数,后面编写)
3)参数name: 为此链接取名,在其他地方直接使用名称就可找到该url

2、编写视图

视图函数接受请求中的信息,准备好生成页面所需的数据,再将这些数据发送给浏览器——这通常是使用定义页面外观的模板实现的。
learning_logs中的文件views.py是执行命令python manage.py startapp时自动生成的,当前其内容如下:

from django.shortcuts import render

# Create your views here.

当前,这个文件只导入了render()函数,它根据视图提供的数据渲染响应。下面我们将在这个文件中添加为主页编写视图的代码。如下所示:

from django.shortcuts import render

# Create your views here.
# 浏览器显示想要的内容

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

说明:
当url请求与刚才定义的模式相匹配时,django将文件views.py中查找函数index(),再将对象request传递给这个视图函数。在这里不需要处理任何的数据,因此这个函数只包含render()的代码。
这里我们向render()函数提供两个实参:对象request和一个可用于创建页面的模板。
下面我们来编写这个模板

3、编写模板

模板定义页面的外观,没当页面被请求时,django将填入相关的数据。数据让我们能够访问视图提供的任何数据。
下面我们创建一个index.html文件,在我们自己的项目learning_logs下创建新的目录templates,再在此目录下创建与我们项目同名的文件,将我们新创建的index.html文件下面。项目结构如下:
在这里插入图片描述
接下来我们在index.html文件中编写如下内容:

<head>标题</head>
    <p> 学习记录 </p>

    <p>这里将记录学习笔记的创建和删除以及修改的记录,以帮助了解记录的过程</p>

现在我们请求这个项目的基础http://localhost:8000/,将看到刚才创建的页面,而不再是django的默认页面。在此过程中django接受请求的url,发现该url与模式‘’匹配,因此调用函数views.index()。这将使用index.html包含的模板来渲染页面。其结果如下:
在这里插入图片描述
创建页面的过程看起来可能很复杂,但是将url、视图和模板分离的效果很好。这让我们能够分别考虑项目的不同方面,在项目很大时,可让各个参与者专注于最擅长的方面。比如数据库专家专注于模型,程序员专注于视图代码,而web设计人员专注于模板

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值