《Django By Example》 汉语言 (个人学习用,渣翻)第一章(更新中.)

《Django By Example》 中文 (个人学习用,渣翻)第一章(更新中...)

第一章

创建一个博客应用

在这本书中,你将学习如何创建一个完整的Django项目,并在生产环境中使用。假如你还没有安装Django,在这一章的第一部分你将学习如何安装。本章会覆盖如何使用Django去创建一个简单的博客应用。本章的目的是使你对该框架的工作有个基本概念,懂得不同的组件之间是如何产生交互,并且给你一些简单的技能来创建Django项目通过使用一些基本功能。你会被引导创建好一个完整的项目但是不会对所有的细节进行详细说明。不同的框架组件将在本书以后的章节中进行介绍。
本章会覆盖一下几点:

  • 安装Django并创建你的第一个项目
  • 设计models并且生成迁移
  • 给你的models创建一个管理站点
  • QuerySet和managers的操作
  • 创建views,templates和URLs
  • 给列表views添加页数
  • 使用Django的内置views

安装Django

如果你已经安装好了Django,你可以直接略过这部分跳到创建你的第一个项目。Django是python的一个包因此将在安装在python的环境中。如果你还没有安装Django,这里有一个快速的指南帮助你在本地开发环境安装Django。

Django需要在Python2.7或者3版本上才能更好的工作。在本书的这个例子中,我们使用的将是Python 3。如果你使用LInux或者Max OSX,你可能已经安装好了Python。如果你不确定你的计算机中是否安装了Python,你可以在终端中输入 python 来确定。如果你看到以下类似的提示,说明你的计算机中已经安装好了Python:

Python 3.5.0 (v3.5.0:374f501f4567, Sep 12 2015, 11:00:19)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>>

如果你计算机中安装的Python版本低于3,或者没有安装,下载并安装Python 3.5.0 从http://www.python.org/download/。

由于你将使用Python3,你没必要再安装一个数据库。这个Python版本自带SQLite数据库。SQLLite是一个轻量级的数据库你可以在Django开发环境中使用。如果你准备在生产环境中部署你的应用,你应该使用一个更高级的数据库,比如PostgreSQL,MySQL或Oracle。你能获取到更多的信息关于数据和Django的结合通过访问https://docs.djangoproject.com/en/1.8/topics/install/#database-installation 。

创建一个独立的Python环境

强烈建议你使用virtualenv来创建一个独立的Python环境,这样你可以使用不同的包版本对应不同的项目,这比直接安装Python包更加的实用。其他高级的地方是你在virtualenv中你不需要任何管理员权限来安装Python包。在终端中运行以下命令来安装virtualenv:

pip install virtualenv

当你安装好virtualenv之后,通过以下命令来创建一个独立的环境:

virtualenv my_env

这个命令会在你的Python环境中创建一个my_env/目录。当你的虚拟环境被激活的时候所有已经存在的Python库都会自动带入 my_env/lib/python3.5/site-packages dircory。
如果你的系统既有Python2.X又有Python3.X,你必须告诉虚拟环境使用哪个版本。通过以下命令你可以定位已安装的Python3来创建虚拟环境:

zenx\$ which python3
/LibraryFrameworks/Python.framework/Versions/3.5/bin/python3
zenx\$ virtualenv my_env -p /Library/Frameworks/Python.framework/Versions/3.5/bin/python3

通过以下命令来激活你的虚拟环境:

source my_env/bin/activate

shell提示将会包含激活的虚拟环境名,像下面一样:

(my_evn)laptop:~ zenx$

你可以使用deactivate命令随时停用你的虚拟环境。
你可以获取更多的信息关于虚拟环境通过访问https://virtualenv.pypa.io/en/latest/。
你可以使用virtualenvwrapper工具来方便的创建和管理你的虚拟环境。你可以在http://virtualenvwrapper.readthedocs.org/en/latest/ 下载该工具。

使用pip安装Django

pip是安装Django的第一选择。Python3.5自带pip,你可以找到pip的安装指令通过访问 https://pip.pypa.io/en/stable/installing/
运行以下命令来通过pip安装Django:

pip install Django==1.8.6

Django将会被安装在虚拟环境的site-packages/目录下。
现在检查Django是否成功安装。在终端中运行python并且导入Django来检查它的版本:

>>> import django
>>> django.VERSION
DjangoVERSION(1, 8, 5, 'final', 0)

如果你获得了以上输出,恭喜你,Django已经在你的计算机里成功安装。
Django也可以使用别的方法来安装。你可以找到更多的信息通过访问https://docs.djangoproject.com/en/1.8/topics/install/。

创建你的第一个项目

我们的第一个项目是一个完整的博客站点。Django提供了一个命令允许你方便的创建一个初始化的项目文件结构。在终端中运行以下命令:

django-admin startproject mysite

该命令将会创建一个名为mysite的项目。
让我们来看下生成的项目结构:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

让我们来了解一下这些文件的功能:

  • manage.py:一个用来操作项目的使用命令行。它是django-admin.py工具的包装。你不需要编辑这个文件。
  • mysite/:你的项目目录,由以下的文件组成:

    init.py:一个空文件告诉Python这个mysite目录是一个Python模块。
    settings.py:项目的设置和配置。里面包含一些初始化的设置信息。
    urls.py:这是你存放URL的地方。这里定义的每一个URL都映射到一个view。
    wsgi.py:配置你的项目可以通过WSGI应用运行
    settings.py文件包含使用SQLite数据库的基础配置和一个添加到你的项目中的默认Django应用列表。我们需要为初始化的应用创建一些tables在数据库中。
    打开终端执行以下命令:

    cd mysite
    python manage.py migrate

你将会看到以下的类似输出:

Rendering model states... DONE
Applying contenttypes.ooo1_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length...OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying sessions.0001_initial... OK

这些初始化的应用tables将会在数据库中创建。你马上会学习到一些关于migrate的管理命令。

运行开发环境

Django自带一个轻量级的web服务来快速运行你的代码,而不需要花额外的时间来配置一个生产用的服务。当你运行Django的开发服务,它会一直检查你的代码变化。它会自动重启,解放你的双手在代码变化后不用手动进行重启。然而,它可能无法注意到一些操作,例如在项目中添加了一个新文件,所以你在某些情况下还是需要手动进行重启操作。

在你的项目主目录下运行一下代码来启动开发服务:
python manage.py runserver

你会看到以下类似的输出:

Performing system checks...

System check identified no issues (0 silenced).
November 5, 2015 - 19:10:54
Django version 1.8.6, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

现在,在浏览器中打开 http://127.0.0.1:8000/ ,你会看到一个告诉你项目成功运行的页面,如下图所示:

(累了,明天继续)

1楼牛腩
fcrf 支持支持
Re: 夜夜月月
@牛腩,谢谢