python+Django的web应用程序(三)Django入门——创建网页:学习笔记主页

本文档记录了一位开发者按照《Python编程:从入门到实践》项目三使用Django创建web应用的过程,包括定义URL、编写视图和模板。在遇到问题时,开发者通过查阅资料解决了URL配置中的错误,创建了`learning_logs`的URL模式,并定义了视图函数index()。最后,开发者编写了简单的HTML模板,实现了基础网页的展示。
摘要由CSDN通过智能技术生成

按照《Python编程:从入门到实践》这本书的项目三所编写的web应用程序

python+Django的web应用程序(三)Django入门

创建网页:学习笔记主页

使用Django创建网页分三步:

定义URL
编写视图
编写模板

就目前而言,先写一个简单的URL,让Web应用能够正常运行,之后再设计复杂的样式。
只需让主页显示标题和简单的概述

映射URL

用户通过URL来请求网页,目前,基础 URL(http://localhost:8000/)返回默认的Django网站,修改默认URL,将这个基础URL映射到“学习笔记”的主页。
打开项目文件夹learning_log中的文件urls.py,如下所示
在这里插入图片描述
打开
在这里插入图片描述

变量urlpatterns包含项目中的应用程序的URL。
模块admin.site.urls定义了可在管理网站中请求的所有URL。

为什么我的urls.py里的代码和书上的代码不一样?

那书上的代码八成不能用了,果断找度娘

机智如我

添加进包含learning_logs的URL如下:

path('', include('learning_logs.urls')),

在这里插入图片描述
然后就不出意外的出意外了
报错如下:
在这里插入图片描述
名字错误:名称“include”未定义 (NameError: name ‘include’ is not defined)
没有导入include模块就不能用,啊,这很合理。

解决办法:
导入include模块

from django.conf.urls import include

或者这样
在这里插入图片描述
其实人家提示的有,只是我没看到
在这里插入图片描述
运行下服务:
在这里插入图片描述在这里插入图片描述
很好又报错,完全在意料之中,根本不慌。

看下错误原因:
模型找不到:没有名为“learning_logs.urls”的模块(ModuleNotFoundError: No module named ‘learning_logs.urls’)

找不到?这不用path包含进去了吗?
结果如下:
在这里插入图片描述
好吧,这个确实没有,不过这也说明了添加进去的path的确其作用了。

手动创建urls.py:
在这里插入图片描述
代码如下:

"""定义learning_logs的URL模式"""
from django.urls import path
from . import views

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

在这里插入图片描述

在 Django 2.0 中,应用程序的命名空间是通过应用程序urls.py的app_name中的变量定义的。

然后,嗯…直接来看报什么错吧
在这里插入图片描述
属性错误:模块 'learning_logs.views’视图没有属性“index”(AttributeError: module ‘learning_logs.views’ has no attribute ‘index’)

因为没有编写视图,所以views里面没有属性“index”,合理!
在这里插入图片描述

编写视图

视图函数接受请求中的信息,准备好生成网页所需的数据,再将这些数据发送给浏览器
learning_logs中的文件views.py是你执行命令python manage.py startapp时自动生成的

开始编写视图
在这里插入图片描述
在这里插入图片描述
代码如下:

from django.shortcuts import render

# Create your views here.

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

URL请求与我们刚才定义的模式匹配时,Django将在文件views.py中查找函数index(),再将请求对象传递给这个视图函数。

index.html是接下来要编写的视图模板

编写模板

模板定义了网页的结构。当网页被请求时,Django将填入相关的数据。

在文件夹learning_logs中新建一个文件夹,并将其命名为templates。在文件夹templates中,再新建一个文件夹,并将其命名为learning_logs。(这么做可以将文件详细分类,看着麻烦,但对于维护和修改来说更方便)

在最里面的文件夹learning_logs中,新建一个文件,并将其命名为index.html,再在这个文件中编写如下代码:

<p>学习笔记</p>

<p>学习笔记可以帮助你跟踪你任何主题的学习。</p>

在这里插入图片描述
现在访问一下刚设置好的基础URL,看看能不能跳转到index.html
http://localhost:8000/
在这里插入图片描述
好了,第一个网页创建完毕。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值