开始学习Django!〜教程①〜

总结

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

django-logo.jpg

在教程中,我们正在创建类似投票应用的东西。
简单的需求如下:

    • ユーザが投票したり結果を表示したりできる公開用サイト

 

    投票項目の追加、変更、削除を行うための管理 (admin) サイト

Python框架

我选择了Python框架中的Django。
原因如下。

    • Djangoの拡張フレームワークとして、djangorestframeworkというRESTfulAPIを制作するのに特化したものがあった。

React + Djangoが実現できそう。

PythonのWebアプリフレームワークでは一番人気な為、日本語の参考資料などが多い。
AWS関連のDjango専用モジュールがたくさんあった。

我听说其他候选项中,“Bottle”、“Flask”和“Tornado”也变得流行起来,但为了把握Python这个大框架的概要,我想从最受欢迎的框架入门。

环境

由于之前的语法教程是使用Python 2.x版本,所以这次我想使用3.x版本来进行教学。

項目内容OSMacOS XPythonv3.5.2Djangov1.10.2

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 时,应该会出现以下内容。

スクリーンショット 2016-10-11 1.31.19.png

如果显示“ 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。

スクリーンショット 2016-10-11 2.27.31.png

如果屏幕上显示出字符,那么路由设置成功了。

URL函数

url() 函数接受4个参数,其中2个参数是必需的。
regex 是必需的参数,view 是必需的参数,kwargs 是可选的参数,name 是可选的参数。让我们看一下这些参数的作用是什么。

参数

正则表达式

在第一个参数中,您需使用正则表达式指定URL模式。
该参数是必需的。

观点

当Django找到与正则表达式匹配的内容时,它将调用指定的视图函数。在调用函数时,将HttpRequest对象作为第一个参数传递,并且将从正则表达式中“捕捉到的”值作为其他参数传递给函数。
这个参数是必需的。

把以下内容用中文本地化改写,只需要一个选项:

关键词

可以将任意的关键字参数作为字典传递给目标视图。这个功能不在教程中使用。
这个参数是可选的。

名字

如果在URL中进行命名,那么你可以从Django的任何地方明确地引用它,尤其是在模板中非常有效。得益于这个方便的功能,即使要对项目的URL进行全局性的更改,也只需修改一个文件即可解决。

总结

第1章教程到这里结束了。从搭建开发环境,到创建项目和应用程序,我们已经学习了如何显示简单的视图和配置URLconf。

下一次,我希望能够与数据库进行协作,并且展示更加复杂的模板视图。

系列

    • Djangoを始めよう! 〜チュートリアル①〜

 

    • Djangoを始めよう! 〜チュートリアル②〜

 

    • Djangoを始めよう! 〜チュートリアル③〜

 

    • Djangoを始めよう! 〜チュートリアル④〜

 

    • Djangoを始めよう! 〜チュートリアル⑤〜

 

    Djangoを始めよう! 〜チュートリアル⑥〜
广告
将在 10 秒后关闭
bannerAds