给那些不懂得Django教程的人的一首勇气之诗①

不知怎么地,突然想试试编程!听说Python不错,虽然不怎么懂,但还是试了试,学习了一些语法,想着要做点什么但没有什么好主意,总之,据说能用一个叫Django的东西建立网站,于是我试着看了看Django的教程,明明应该是日语的,但完全不懂,真气人啊!像我这样的你,是不是也有同感!

大人!你不是一个人!!

因此,我希望在初學者閱讀Django教程時能盡可能省略冗余部分,並以年輕一代也能理解的方式進行表達。

这次我们将进行第一次Django应用程序的创建,我们将开始处理第一部分。

Django的安装

在Django教程中,未提及安装方法,但这是因为根据环境(如Windows或macOS),安装方式可能会有所不同。以下是一个介绍Windows上Django环境配置的网站链接。

 

如果你已经熟悉Python和CMD,那么对于建立虚拟环境这类事情可能会比较麻烦。解决这些问题的一个编辑器是我也喜欢使用的Pycharm。这个编辑器本身就带有Django项目创建功能,可以轻松创建Django环境。在Pycharm的开发者JetBrains的官方网站上有关于使用Pycharm进行环境配置的说明,请参考该网站。(该网站上也有关于创建Web应用程序的内容,但今天我们只讲解Django教程。)

这边推荐用这个方式,因为这样更加轻松!虽然这么说,但如果一开始就使用PyCharm,会觉得它太方便了,「嗯,虚拟环境是什么?venv?那是什么好吃的东西?」之类的问题会频繁出现,所以如果你是个好像 masochist,想要彻底理解这方面知识的人,好像使用终端/命令提示符也不错。我会选择轻松愉快的PyCharm?

Django项目和应用

马上开始,在名为”mysite”的项目中安装Django。在Pycharm中,创建项目目录(并创建Django项目)时,可以设置应用程序名称。按照教程,我们来创建一个名为”polls”的应用程序(意为”世論調査”)。

在这里所说的“应用程序”,你可以认为它是网站中的“功能”部分。除了功能之外,项目还包括文件来表示网站的结构,以及文件中写着“点击此URL时显示此页面”等等,是由各种各样的元素组合而成的。你不需要自己编写这些部分,只需要偶尔添加所需的部分,就可以创建Web应用程序,这是包括Django在内的“框架”的优点。

无论放在哪里,应用程序都可以运行,但这次让我们将应用程序放在与manage.py文件相同的目录中,这在django开发期间会频繁使用。(默认情况下就是这样)

manage.py是一个命令行实用工具,用于执行各种django命令。现在我们来实际在终端中输入以下命令,启动django的本地服务器。

python manage.py runserver
image.png

网站完成了!你也成为了顶尖的Django大师!现在,让我们一起展翅飞向Django的世界吧!

这只是一个玩笑。 (Zhè .)

通过这个,就可以说“Django已经正确安装了!”

image.png

先不管有什么各种文件,关于它们的角色我们稍后整理,现在先写一下那些教程前辈要求的代码吧。

初次创建视图

视图的作用是决定要显示哪个页面,其功能是“用户请求了这个!让我们显示这个页面!”让我们先编辑polls目录中的views.py文件。

from django.shortcuts import render
from django.http import HttpRequest

# ここにビューを作成
def index(request):
    return HttpResponse("はじめてのview作成")

现在,您是否感觉到了“第一次创建视图”即将显示的预感呢?请尝试执行之前的runserver命令(或按F5刷新),仍然会显示刚才的火箭标志。

为了调用在views.py中创建的视图,我们需要确定该视图的URL并进行对应。url.conf负责处理这个任务,但要创建url.conf文件,我们需要在“polls应用程序内部”创建urls.py文件。(请注意,mysite目录中也有同名文件,切勿搞混!)

请按如下所示编辑其内容。

from django.urls import path

from . import  views

urlpatterns = [
    path("", views.index, name="index"),
]

然后,我们还需要编辑项目根目录(mysite)下的urls.py文件。默认情况下,urlpatterns中写着执行admin.site.urls!那么我们在urlpatterns中添加一条规则,当访问到polls/这个URL时,去查找polls应用的urls.py文件,并显示该文件中设定的页面!

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

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


有些人可能会觉得有点不明白!有两个urls.py文件吗?有什么不同?暂时运行服务器,然后尝试访问http://127.0.0.1:8000/polls(别忘记添加polls在最后!)如果显示出这样的内容,那就说明成功了。

image.png

现在让我们深入研究一下urls.py文件。试试看,我们可以分别改变mysite和polls的path函数的第一个参数(然后记得之后要改回去!)

- path("polls/", include("polls.urls"))
+ path("aaa/", include("polls.urls"))
- path("polls/", include("polls.urls"))
+ path("bbb/", include("polls.urls"))
image.png

我们来仔细看一下错误。
404错误是指“该页面不存在(=URL错误!)”的错误。如果你读一下下面的英文
使用在mysite.urls中定义的URLconf,Django按照以下顺序尝试了这些URL模式:
admin/
aaa/
意思是我在查看mysite.urls中定义的URLconf,但只有admin/和aaa/这两个,没有找到bbb/的。

接下来,让我们尝试访问这个链接:
http://127.0.0.1:8000/aaa/aaa
错误信息有点变化了!变成了
admin/
aaa/ bbb

这意味着,当有URL访问时,我们将从左到右逐个检查字符。首先,我们将搜索项目根目录(mysite/urls.py),看看是否有符合该模式的内容,如果在这个模式中有一个path函数,并且其中包含了include()函数,那么我们将去浏览include所指定的位置(polls/urls.py)。然后我们将继续进行URL的模式匹配,如果找到匹配的URL,那么将执行path函数的第二个参数中指定的views的index函数。


进一步补充:

urls.py和urlConf

我稍微研究了一下,似乎url.py可以被理解为urlConf,这应该没有问题。
https://yuki.world/django-url-thingy/
對於初學者來說,這種東西真的讓人很困擾?

这一次就到这里吧。请继续看第二部分。

广告
将在 10 秒后关闭
bannerAds