开始学习Django!〜教程①〜
总结
这是上次的延续。
这次, 我想要完成Python中最受欢迎的Web应用框架”Django”的全面教程。
毕竟, 学习框架最好还是以官方提供的教程为准。
幸运的是, Django还存在有日语翻译的教程。

在教程中,我们正在创建类似投票应用的东西。
简单的需求如下:
-
- ユーザが投票したり結果を表示したりできる公開用サイト
- 投票項目の追加、変更、削除を行うための管理 (admin) サイト
Python框架
我选择了Python框架中的Django。
原因如下。
-
- Djangoの拡張フレームワークとして、djangorestframeworkというRESTfulAPIを制作するのに特化したものがあった。
React + Djangoが実現できそう。
PythonのWebアプリフレームワークでは一番人気な為、日本語の参考資料などが多い。
AWS関連のDjango専用モジュールがたくさんあった。
我听说其他候选项中,“Bottle”、“Flask”和“Tornado”也变得流行起来,但为了把握Python这个大框架的概要,我想从最受欢迎的框架入门。
环境
由于之前的语法教程是使用Python 2.x版本,所以这次我想使用3.x版本来进行教学。
Django的安装
用以下的命令安装Django。
$ pip install django
使用以下命令进行安装并确认版本。
$ python -m django --version
>>>1.10.2
创建项目
在Django中,准备了用于创建项目的命令。这次我们将创建一个名为“mysite”的项目,与教程中的项目相同。
$ django-admin startproject mysite
Django项目的概念
项目是将数据库设置、Django特有选项、以及应用程序特定设置等个别Django实例的设置收集起来的东西。
通过startproject创建的文件。
执行startproject指令后,将会创建如下所示的目录。
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
我的網站的外部部分
mysite/的外部路徑是這個專案的純粹容器。這個名稱與Django無關,因此您可以自由更改為您喜歡的名稱。
管理.py
这是一个用于执行对Django项目进行各种操作的命令行工具。
我的网站目录中的内部文件夹
这是该项目真正的Python包。这个名称是Python包的名称,也是在导入时使用的名称(例如,import mysite.urls)。
我的网站初始化文件。
这个文件是一个空文件,用来让Python知道这个目录是一个Python包。
我的网站配置文件是settings.py。
Django项目的URL声明相当于Django网站中的”目录”。
我的网站/wsgi.py
这是一个与WSGI兼容的Web服务器的入口点,用于提供项目的服务。
每个文件在实际修正时,我们希望再次详细说明。
开发用服务器
在Django中,已经为我们预先准备好了一个简易的Web服务器。
您可以使用以下命令启动开发服务器。
$ python manage.py runserver
>>>
Performing system checks...
System check identified no issues (0 silenced).
You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
October 10, 2016 - 16:28:45
Django version 1.10.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
在迁移相关方面会出现错误,但目前可以忽略不计,没问题的。
我正在实际的浏览器中确认。
当浏览 localhost:8000 时,应该会出现以下内容。

如果显示“ It worked!”,则表示简易服务器已经成功启动。
(可以切换为日语,目前是英语。
也可以更改端口号。)
创建应用程序
我們這次打算按照教程來製作投票應用程式。
项目和应用程序之间的区别
一个项目可以含有多个应用程序。同时,一个应用程序可以在多个项目中使用。
项目
项目是将”设置”和”应用程序”集合起来,针对某个网站而设计的。
应用程序
“应用程序”指的是实际执行某种处理的Web应用程序。(也可以表达为功能和表现)
例如,博客系统、公开记录数据库和简单投票应用等。
创建应用程序的命令 de
您可以使用以下命令创建新的应用程序。
在这次使用中,我们将创建一个投票应用程序。
$ python manage.py startapp polls
创建视图
在每个应用程序中创建的views.py文件中制作视图。
这次根据请求创建了一个简单的视图,以返回响应。
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello World from Polls')
链接的映射
创建 polls 的 URL 配置
为了调用视图,需要进行URL的映射。
需要有URLconf。
为了在polls目录中创建URLconf,我们将创建一个名为urls.py的文件。
将URL的根路径与”polls”关联起来。
下一步是将 polls.urls 模块的描述反映到根URL配置中。
将URLconf根目录的设置修改为如下所示。
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^polls/', include('polls.urls'))
url(r'^admin/', admin.site.urls),
]
确认路由是否受控制
让我们实际启动服务器并尝试访问localhost/polls。

如果屏幕上显示出字符,那么路由设置成功了。
URL函数
url() 函数接受4个参数,其中2个参数是必需的。
regex 是必需的参数,view 是必需的参数,kwargs 是可选的参数,name 是可选的参数。让我们看一下这些参数的作用是什么。
参数
正则表达式
在第一个参数中,您需使用正则表达式指定URL模式。
该参数是必需的。
观点
当Django找到与正则表达式匹配的内容时,它将调用指定的视图函数。在调用函数时,将HttpRequest对象作为第一个参数传递,并且将从正则表达式中“捕捉到的”值作为其他参数传递给函数。
这个参数是必需的。
把以下内容用中文本地化改写,只需要一个选项:
关键词
可以将任意的关键字参数作为字典传递给目标视图。这个功能不在教程中使用。
这个参数是可选的。
名字
如果在URL中进行命名,那么你可以从Django的任何地方明确地引用它,尤其是在模板中非常有效。得益于这个方便的功能,即使要对项目的URL进行全局性的更改,也只需修改一个文件即可解决。
总结
第1章教程到这里结束了。从搭建开发环境,到创建项目和应用程序,我们已经学习了如何显示简单的视图和配置URLconf。
下一次,我希望能够与数据库进行协作,并且展示更加复杂的模板视图。
系列
-
- Djangoを始めよう! 〜チュートリアル①〜
-
- Djangoを始めよう! 〜チュートリアル②〜
-
- Djangoを始めよう! 〜チュートリアル③〜
-
- Djangoを始めよう! 〜チュートリアル④〜
-
- Djangoを始めよう! 〜チュートリアル⑤〜
- Djangoを始めよう! 〜チュートリアル⑥〜