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

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

按照《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/

好了,第一个网页创建完毕。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/883614.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-14
下一篇2022-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存