我想要创建一个午餐数据库,《EP1-1》是关于学习Django的初级阶段
想制作一个Web应用
这就是为什么我打算学习Python的Django的原因。
Django是Python的一个Web框架。
不太清楚框架是什么东西,但官方网站上写着“Django使得更快地、更少代码地构建更好的Web应用程序变得更容易。”,所以大概就是这种东西吧。
据说著名的网站YouTube、Dropbox和Instagram也都是用Django构建的。
太厉害了、、、
请注意:本文是关于“尝试Django官方项目教程”的文章。
(注:本文共分为四篇文章。与官方教程相关如下:
准备工作进入教程之前~第一篇教程
本文
第一篇至第三篇教程
想要创建午餐数据库【EP1-2】初学Django篇
第三篇至第五篇教程
想要创建午餐数据库【EP1-3】初学Django篇
第五篇至第七篇教程
想要创建午餐数据库【EP1-4】初学Django篇)
建立环境
不管怎样,首先要从环境构建开始
-
- Pythonを用意します
-
- Djangoを入れます
- 適当なテキストエディタを入れておきます
如果能做到以下三点,我认为就能够开始使用Django了。
就我个人而言,我使用的是Windows10 1909版本。
-
- Anaconda-1.7.2
-
- Django-3.0.8
- Visual Studio Code-1.47.2
我已经准备好了。以下是我在设置时参考的链接。
快速掌握Django的第一部分
Django官方文档-教程
Python环境搭建(Anaconda + VSCode)@ Windows10【2020年1月版】
第一步
我安装了Django后,接下来建立了虚拟环境。
虽然这样或许能理解,但进展非常缓慢,还请谅解。
由于在构建虚拟环境方面,关于pyenv和venv的文章较多,所以在这次使用Anaconda构建时,我有些困惑。
Anaconda的GUI非常易于使用,实际上可以完全不用输入命令就可以构建虚拟环境。
因此,对于初学者来说可能更容易上手。
以下是AnacondaNavigator中的设置界面。



让我们开始一个项目
一旦创建了虚拟环境后,可以通过AnacondaPrompt启动虚拟环境,进入工作目录并创建项目。
(base)C:\User>conda activate Django
(Django)C:\User>django-admin startproject mysite
通过这个命令,将会创建一个名为”mysite”的文件夹,并在其中自动生成一个类似于项目入门套件的代码。
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
由于教程中已经有完全相同的解释,所以详细内容将省略,但基本操作由manage.py管理,urls.py负责网站内的路由设置。
更详细的文章请参阅⇒ 分解 Django-django(框架)的工作原理【逐层解释】。
首先,让我们尝试启动Web服务器吧!
(Django)C:\User\mysite>python manage.py runserver
我成功地搭建了服务器。
对于了解的人来说,他们会明白我在这里搭建的只是开发服务器,也就是所谓的试用版。
实际上,我会安装Apache等来运作。

制作一个民意调查的应用程序。
在教程中,我们将进入创建投票应用程序的过程。
首先,我们将创建应用程序的模板。
(Django)C:\User\mysite>python startapp polls
在这里以名为”polls”的目录中创建了,并且已经包含了构建应用程序的基本脚本。
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
这个名为views.py的脚本负责页面的外观。
现在,我们来稍微修改一下views.py,以改变页面的外观。
我将使用Vscode从这里开始进行编辑。
我在VS Code中安装了插件,使其支持日语化和Python扩展功能。最近这受到了很多关注,所以我尝试了Pylance插件。

我們將在views.py中添加以下腳本。
from django.http import HttpResponse
def index(request):
#適当な言葉を入れました
return HttpResponse("こんにちは!")
教程和返回的HttpResponse内容是不同的,但在这里我们只是展示一条消息,所以我随意填入了喜欢的内容。
为了显示这个函数,需要在urls.py中进行路由设置。
※在此设置的是位于polls目录中的urls.py。由于在mysite目录中也有urls.py,所以请小心。在这里我们将在深层目录的urls.py中编写。
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
调用`views.py`并将`views.index`的路径添加到`urlpatterns`列表中。
仅仅这样是无法调用`views.index`的。
还需要在`mysite/urls.py`中指示到`polls`的路由。
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
管理员原本就包含在内。
添加了对polls的路径。
include是一个必要的函数,用于将操作传递到较低级的urls.py文件。
但是admin.site.urls是一个例外。
这样就可以通过127.0.0.1:8000/polls调用views.index了。
关于URL调度参考->学习Django(1)

虽然感觉相当寂寞,但是既然遵循了代码的响应,感觉还行。
数据库设置
在`mysite/setting.py`文件中进行数据库配置。Python很幸运地内置了SQLite这个小型数据库。这也展示了Python电池附带的哲学。
(Django) C:\User\mysite>python manage.py migrate
创建数据库表已经完成。虽然过程过于简单,令人惊讶,但这也是Django的好处之一吧。
如果要使用除SQLite以外的数据库,则需要在setting.py中进行额外的配置。
创建模型
我們將創建一個核心模型來開發投票應用程序。
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
通过查看代码,可以看出我们定义了两个类Question和Choice作为models.Model类的子类。
此外,我们还为属性设置了Field。
对于Field,我还没有完全理解。我会继续努力。
models.ForeignKey是用于获取外键的函数。对不起,我的解释比较粗糙。
开启模式
创建模型后,接下来需要在setting.py文件中对模型进行激活,使其能够被引用。
INSTALLED_APPS = [
'polls.apps.PollsConfig', #この行を追加
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
请问polls.apps.PollsConfig是什么?就是这个↓
from django.apps import AppConfig
#これを呼んでいます。
class PollsConfig(AppConfig):
name = 'polls'
完成setting.py的设置之后
(Django) C:\User\mysite>python manage.py makemigrations polls
通过执行”makemigrations <应用程序名称>”,可以保存模型的更改。似乎以后可以使用”migrate”来进行相关操作。
因为变得很长了,所以我想在这里结束一次。
非常感谢。
如果发现错误,将会适时修正。
下次计划⇒我想要创建午餐数据库【EP1-2】初次学习Django篇