使用Django的第一步|建立一个Django项目的教程

240 阅读13分钟

Django Setup Guide

Django是一个高水平的Python Web框架,它鼓励快速开发和简洁、务实的设计。

在本教程中,我们将回答_"如何从头设置一个Django(1.5、1.6、1.7或1.8)项目?"_换句话说,你将学习如何安装Django以及如何设置你的Django项目结构。

以下是你如何充分利用本教程的内容。

  1. 读完介绍和设置部分。
  2. 然后选择你的毒药--Django 1.5, 1.6, 1.7, 1.8--来设置一个Django项目。
  3. 在完成最初的项目设置后,下移到创建一个应用程序部分,以设置一个漂亮而简单的应用程序。
  4. 然后查看工作流程摘要,了解Django项目的快速入门指南。

免费奖励: 点击这里可以获得免费的Django学习资源指南(PDF),该指南向你展示了在构建Python+Django网络应用程序时需要避免的技巧和窍门以及常见的陷阱。

简介

本教程回答了_"如何从头设置一个Django项目 "_的问题。既然你在读这篇文章,我假设(呃,希望)你知道Django是一个为快速网络开发而建立的Python网络框架。我们将通过设置,详细介绍Django的基本安装程序和所需的依赖性,以及一些额外的库/扩展,让你尽快开始开发。

我们也会看一下基本的工作流程,你可以在你的项目结构设置完成后立即使用。

最后,一定要看一下下面的视频。

虽然这些视频是针对Django 1.5的,但它们也会帮助你了解Django 1.6、1.7和1.8的基本工作流程。

教程要求

你应该有一些Python的经验,并且知道基本的Unix bash命令。如果你以前从未使用过命令行,请熟悉以下命令:pwdcdlsrm_和_mkdir

为了简单起见,所有的例子都使用Unix风格的提示符。

$ python manage.py runserver

(美元符号不是命令的一部分)。

Windows的对应命令。

C:\> python manage.py runserver

设置

你需要一个基本的Django开发环境。

  1. Python 2.7.x 或 3.4.x
  2. easy_install和Pip
  3. Git
  4. 虚拟环境
  5. Django
  6. 数据库(SQLiteMySQL、PostgreSQL、MongoDB,等等)。
  7. 南方(适用于1.7之前的Django版本
  8. 文本编辑器 (Sublime, vim, Komodo, gedit)

注意:本教程使用的是Python 2.7.8版本。

Python

Unix环境中预装了Python。要检查你的Python版本,请运行该命令。

$ python -V
Python 2.7.8
$ python3 -V
Python 3.4.2

如果你已经有了2.7.x版本,继续下一步。如果没有,请下载并安装特定于你的操作系统的最新2.7.x版本。

删除广告

easy_install和pip

easy_install 和 pip 都是 Python 软件包管理器,它们使安装和升级Python 软件包(以及软件包的依赖关系)_更加_容易。

要下载 easy_install,请到Python Package Index(PyPI) 。你需要下载 setuptools,它包括 easy_install。下载软件包蛋(.egg),然后直接从文件中安装。

同时,Pip 是一个依赖于 easy_install 的包装器,所以在安装 pip 之前,你必须先设置好 easy_install 并运行。一旦easy_install安装完毕,运行下面的命令来安装pip。

$ easy_install pip

Git

对于版本控制,我们将使用git。如果你已经安装了git,你可以用下面的命令检查你当前的版本。

$ git --version
git version 2.3.0

如果你没有安装大于1.7.x的版本,请下载最新版本。

MySQL

SQLite 预先安装在 Python 中,而且大多数教程都使用 SQLite -- 所以让我们推己及人,使用 MySQL。

首先,从这里安装MySQL。

接下来,启动服务器,然后设置一个新的数据库和一个用户。

$ mysql.server start
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> CREATE DATABASE django_db;
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> quit
Bye

virtualenv

为你的Python项目使用virtualenv(虚拟环境),以创建独立的开发环境(也称为 "沙盒"),这是一种常见的做法。virtualenv 的目标是防止不同版本的库/包相互干扰。

把 virtualenv 想象成你电脑中一个完全隔离的容器,在那里你可以使用任何版本的 Python 并安装库/包,它不会影响容器外的任何东西。它就像你家里的一个隔离的、隔音的房间,你可以随心所欲地大喊大叫,关于你想要的任何东西,而房间外的其他人都听不到。

用下面的命令安装virtualenv。

$ pip install virtualenv

Django 1.5

首次发布于2013年2月26日,最引人注目的新功能包括。

  1. 可配置的用户模型。你不再被迫使用Django对 "用户 "的定义,现在你可以推出自己的用户模型,创建自定义字段,比如--社交档案的链接、出生日期、最喜欢的颜色等等。
  2. 支持Python 3。Django建议现在还不要在生产中使用Python 3,因为支持仍然是 "实验性的"。然而,这个功能对于整个Python社区来说是非常巨大的,有助于施加更多的压力,使其向改进后的Python 3迈进。

想要阅读完整的发布说明?请在这里查看Django的官方变化。

最新的版本是在2015年1月2日:v1.5.12

请看本教程的配套视频。

删除广告

Django安装

设置好你的开发结构。

$ mkdir django15_project
$ cd django15_project
$ virtualenv env
$ source env/bin/activate

你应该在提示符前看到(env)(env)$ ,表明你在 "env "虚拟环境中运行。

要退出virtualenv,输入以下命令。

$ deactivate

然后在你准备再次工作时重新激活。

让我们来安装Django。

$ pip install django==1.5.12

你可以通过运行以下命令来检查版本。

>>>

$ python
>>> import django
>>> django.get_version()
'1.5.12'

项目设置

设置Django项目

$ django-admin.py startproject my_django15_project

这将创建一个名为 "my_django15_project "的新目录,其中包含基本的Django目录和结构。

├── manage.py
└── my_django15_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

版本控制

在你开始任何开发之前,将你的项目置于版本控制之下。首先,在 "django15_project "目录下添加一个名为_.gitignore的_新文件,用于忽略不必要的文件被添加到git仓库中。

在该文件中添加以下内容。

env
*.DS_Store
*.pyc
__pycache__

现在初始化(或创建)一个新的Git repo,将你的改动添加到暂存库,然后再添加到本地repo。

$ git init
$ git add -A
$ git commit -am "initial commit"

如果你使用BitBucket或GitHub(强烈推荐),把你的文件推送到你的中央 repo。

删除广告

数据库设置

首先,安装MySQL-python,它是Python的一个数据库连接器。

$ pip install MySQL-python

在你的 "my_django15_project "目录下编辑你的_settings.py_文件,添加关于你先前设置的数据库的以下信息。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

创建你的数据库表并设置一个超级用户。

$ cd my_django15_project
$ python manage.py syncdb

启动开发服务器。

$ python manage.py runserver

如果Django和数据库设置正确,你应该看到以下输出。

Validating models...

0 errors found
September 7, 2014 - 23:36:02
Django version 1.5, using settings 'my_django15_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

将你的浏览器指向http://127.0.0.1:8000,你应该看到Django的 "It worked!"页面。

回到你的终端,按CONTROL-C键杀死服务器。

南方

South用于管理你的数据库表的变化。随着你的应用程序的增长,你需要在一个特定的表中添加一个字段,例如,你可以通过South的迁移简单地对数据库进行修改。这使生活变得_更加_容易。

安装South。

$ pip install south

pip freeze

现在你所有的库都安装好了,使用下面的命令在 "my_django15_project "目录下创建一个已安装库的记录。

$ pip freeze > requirements.txt

如果你需要从头开始重新创建你的项目,并且需要知道你需要安装的确切的库/版本,这个命令是非常有用的。

将你的新改动提交给Git。

删除广告

设置你的Django应用程序

创建你的新应用。

$ python manage.py startapp myapp

你的项目结构现在应该是这样的。

├── manage.py
├── my_django15_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp
    ├── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

更新_settings.py_文件中的INSTALLED_APPS。

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'myapp',
    'south',
)

在这里,我们启用了管理员,'django.contrib.admin' ,并添加了应用程序,'myapp' ,和'south'

打开_urls.py_,取消对这三行的注释。

from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),

再次同步你的数据库。

$ python manage.py syncdb

用South创建一个数据库迁移文件。

$ python manage.py schemamigration myapp --initial

迁移数据库的变化。

$ python manage.py migrate myapp

启动服务器(python manage.py runserver),然后导航到http://127.0.0.1:8000/admin。输入超级用户的用户名和密码,登录到管理页面。

提交到 Git。比如说。

$ git add -A
$ git commit -am "updated settings, created app, added south, enabled django admin"

使用git,正确的方法

注意:这一部分是相当高级的,完全可以选择。如果这是你第一次设置Django,你可以跳过这一部分。

如果你没有使用GitHub或Bitbucket作为中央repo,你应该在本地repo中创建一个单独的分支用于开发。

首先,在你的 "django15_project "目录下创建一个名为 "dev "的新目录,导航到新创建的目录,然后克隆(复制)你的整个Django项目。

$ git clone /path/to/your/project/

比如说。/Users/michaelherman/desktop/django15_project

这个命令创建了你的Repo的精确拷贝,其中包括你所有的提交和分支。始终从这个目录开发,为你的项目的每一个重大变化创建单独的分支。

$ git branch <branchname>

接下来切换到该分支。

$ git checkout <branchname>

你可以随时用这个命令查看有哪些分支可用。

$ git branch

开发完成后,提交你的修改。

$ git add -A
$ git commit -am "some message"

现在你要把你的改动与主分支合并。

$ git checkout master
$ git merge <branchname>

如果你使用GitHub或Bitbucket的服务,你可以把你的改动推送到GitHub或Bitbucket。最后,回到你的主生产文件夹,拉出你的改动。

$ git pull

例子。

(env)$ cd dev
(env)$ cd django15_project
(env)$ git branch 06212013
(env)$ git checkout 06212013
(env)$ git add -A
(env)$ git commit -am "description of changes made"
(env)$ git checkout master
(env)$ git merge 06212013
(env)$ cd ..
(env)$ git pull /Users/michaelherman/desktop/django15_project/dev/django15_project

删除广告

工作流程

现在你的应用程序已经设置好了,每次你想对你的应用程序进行修改时,请遵循这些简单的工作流程。

基本的。

  1. 导航到你的项目
  2. 激活virtualenv
  3. 开发
  4. 提交修改
  5. 部署
  6. 停用virtualenv

高级。

  1. 导航到你的项目
  2. 激活virtualenv
  3. 创建并签出一个新的git分支
  4. 开发
  5. 提交修改
  6. 将新分支与主分支合并
  7. 把改动拉到生产文件夹中
  8. 部署
  9. 停用virtualenv

干杯!有什么问题吗?有建议吗?

让我们创建一个基本的应用程序

Django 1.6

首次发布于2013年11月6日,最引人注目的新功能包括。

  1. 支持Python 3。对Python 3的支持现在是官方的,没有任何限制,所以你可以在生产中运行它。
  2. 改进的数据库事务管理。API更精简,更干净,更简单,使回滚和错误处理更容易。
  3. 新的测试运行器
  4. 持久的数据库连接

想要阅读完整的发布说明?请在这里查看Django的官方变化。

最新的版本是在2015年3月18日:V1.6.11

Django安装

设置好你的开发结构。

$ mkdir django16_project
$ cd django16_project
$ virtualenv env
$ source env/bin/activate

你应该在提示符前看到(env)(env)$ ,表明你在'env'虚拟环境中运行。

要退出virtualenv,输入以下命令。

$ deactivate

然后在你准备再次工作时重新激活。

激活virtualenv后,用Pip安装Django。

$ pip install django==1.6.11

你可以通过运行以下命令来检查版本。

>>>

$ python
>>> import django
>>> django.get_version()
'1.6.11'

项目设置

设置Django项目

$ django-admin.py startproject my_django16_project

这将创建一个名为 "my_django16_project "的新目录,其中包含基本的Django目录和结构。

├── manage.py
└── my_django16_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

版本控制

在你开始任何开发之前,将你的项目置于版本控制之下。首先,在 "django16_project "目录下添加一个_.gitignore_文件,防止不必要的文件被添加到git仓库中。

在该文件中添加以下内容。

env
*.DS_Store
*.pyc
__pycache__

现在初始化(或创建)一个新的Git repo,将你的修改添加到staging,然后再添加到repo。

$ git init
$ git add -A
$ git commit -am "initial"

如果你使用GitHub,把你的文件也推送到你的中央 repo。

数据库设置

首先,安装MySQL-python,以便Python能够与MySQL通信。

$ pip install MySQL-python

在 "my_django16_project "目录下编辑你的_settings.py_文件。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

创建你的数据库表并设置一个超级用户。

$ cd my
$ python manage.py syncdb

启动开发服务器。

$ cd my_django16_project
$ python manage.py runserver

如果到目前为止一切顺利,你应该看到以下输出。

Validating models...

0 errors found
September 7, 2014 - 23:36:02
Django version 1.6, using settings 'my_django16_project.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

导航到http://127.0.0.1:8000,你应该看到熟悉的浅蓝色的 "它成功了!"页面。

在终端中按下CONTROL-C键,关闭服务器。

删除广告

南方

South是用来处理数据库迁移的--例如,对你的数据库模式进行修改。

安装South。

$ pip install south

pip freeze

安装好依赖项后,使用下面的命令在 "my_django16_project "目录下创建它们的记录,以及它们的后续版本。

$ pip freeze > requirements.txt

当你需要从头开始重新创建你的项目时,这个命令就很方便了。你可以简单地运行pip install -r requirements.txt 来安装你项目的所有依赖项。

将你的新改动提交给Git。

设置你的Django应用程序

创建你的新应用

$ python manage.py startapp myapp

你的项目结构现在应该是这样的。

├── manage.py
├── my_django16_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp
    ├── __init__.py
    ├── admin.py
    ├── models.py
    ├── tests.py
    └── views.py

更新_settings.py_文件中的INSTALLED_APPS,包括South和你的新应用。

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.admin',
    'myapp',
    'south',
)

现在只要你运行syncdb ,Django就会知道southmyapp

打开_urls.py_并取消对这三行的注释。

from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),

再次同步你的数据库。

$ python manage.py syncdb

用South创建一个数据库迁移文件。

$ python manage.py schemamigration myapp --initial

迁移数据库的变化。

$ python manage.py migrate myapp

启动服务器(python manage.py runserver),然后导航到http://127.0.0.1:8000/admin。输入你的超级用户的用户名和密码,登录到管理页面。这只是一个理智的检查,以确保一切正常。

提交到Git。比如说。

$ git add -A
$ git commit -am "updated settings, created app, added south, enabled django admin, boom"

一切就绪。让我们创建一个基本的应用程序

删除广告

Django 1.7

于2014年9月2日首次发布,最引人注目的新功能包括。

  1. 数据库迁移。Django现在内置了对进行数据库模式更改的支持,这是基于南。这是很重要的!
  2. 改进的系统检查工具,用于验证和检查你的项目
  3. 重构了Django识别和加载应用程序的方式

想要阅读完整的发布说明?请在这里查看Django的官方变化。

最新的版本是在2015年5月1日发布的:v1.7.8

Django安装

设置一个开发结构。

$ mkdir django17_project
$ cd django17_project
$ virtualenv env
$ source env/bin/activate

你应该在你的提示前看到(env)(env)$ ,表示你的virtualenv已经激活。

要停用virtualenv。

$ deactivate

然后在你准备再次开始开发时重新激活。

激活了virtualenv后,用Pip安装Django。

$ pip install django==1.7.8

你可以通过运行以下命令来检查版本。

>>>

$ python
>>> import django
>>> django.get_version()
'1.7.8'
>>>

项目设置

设置Django项目

$ django-admin.py startproject my_django17_project

这将创建一个名为 "my_django17_project "的新目录,包含基本的Django目录和结构。

├── manage.py
└── my_django17_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

版本控制

在你开始任何开发之前,将你的项目置于版本控制之下。首先,在 "django17_project "目录下添加一个_.gitignore_文件,防止不必要的文件被添加到git仓库中。

在该文件中添加以下内容。

env
*.DS_Store
*.pyc
__pycache__

现在初始化(或创建)一个新的Git repo,将你的修改添加到staging,然后再添加到repo。

$ git init
$ git add -A
$ git commit -am "initial"

如果你使用GitHub,把你的文件也推送到你的中央 repo。

删除广告

数据库设置

首先,安装MySQL-python,使Python能够与MySQL对话。

$ pip install MySQL-python

在你的 "my_django17_project "目录下编辑_settings.py_。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

创建你的数据库表并设置一个超级用户。

$ cd my_django17_project
$ python manage.py migrate
$ python manage.py createsuperuser

启动开发服务器。

$ python manage.py runserver

如果到目前为止一切顺利,你应该看到下面的输出。

Performing system checks...

System check identified no issues (0 silenced).
September 07, 2014 - 19:51:01
Django version 1.7, using settings 'my_django17_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

导航到http://127.0.0.1:8000,你应该看到熟悉的浅蓝色的 "它成功了!"页面。

在终端中按下CONTROL-C键,关闭服务器。

pip freeze

安装好依赖项后,使用下面的命令在 "my_django17_project "目录下创建它们的记录,以及它们的后续版本。

$ pip freeze > requirements.txt

当你需要从头开始重新创建你的项目时,这个命令就很方便了。你可以简单地运行pip install -r requirements.txt 来安装你项目的所有依赖项。

将你的新改动提交给Git。

设置你的Django应用程序

创建你的新应用。

$ python manage.py startapp myapp

你的项目结构现在应该是这样的。

├── manage.py
├── my_django17_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── myapp
    ├── __init__.py
    ├── admin.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

更新_settings.py_中的INSTALLED_APPS。

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
)

启动服务器(python manage.py runserver),然后导航到http://127.0.0.1:8000/admin。输入你的超级用户的用户名和密码,登录到管理页面。这只是一个理智的检查,以确保一切正常。

提交到Git。比如说。

$ git add -A
$ git commit -am "updated settings, created app, boom"

一切就绪。让我们创建一个基本的应用程序

Django 1.8

于2015年4月1日首次发布,最值得注意的新功能包括。

  1. 新的PostgreSQL特定功能。这增加了新的PostgreSQL特定的ModelFields--ArrayField、HStoreField和Range Fields。请看我们的博文:Fun With Django's New Postgres Features,了解更多信息。
  2. 多种模板引擎。现在你可以使用Jinja!

想要阅读完整的发布说明?在这里查看Django的官方变化。

最新的版本是在2015年5月1日发布的:v1.8.1

Django安装

设置一个开发结构。

$ mkdir django18_project
$ cd django18_project
$ virtualenv env
$ source env/bin/activate

你应该在你的提示前看到(env)(env)$ ,表示你的virtualenv已经激活。

要停用virtualenv。

$ deactivate

然后在你准备再次开始开发时重新激活。

激活了virtualenv后,用Pip安装Django。

$ pip install django==1.8.1

你可以通过运行以下命令来检查版本。

>>>

$ python
>>> import django
>>> django.get_version()
'1.8.1'
>>>

项目设置

设置Django项目

$ django-admin.py startproject my_django18_project

这将创建一个名为 "my_django18_project "的新目录,其中包含基本的Django目录和结构。

├── manage.py
└── my_django17_project
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

版本控制

在你开始任何开发之前,将你的项目置于版本控制之下。首先,在 "django18_project "目录下添加一个_.gitignore_文件,防止不必要的文件被添加到git仓库中。

在该文件中添加以下内容。

env
*.DS_Store
*.pyc
__pycache__

现在初始化(或创建)一个新的Git repo,将你的修改添加到staging,然后再添加到repo。

$ git init
$ git add -A
$ git commit -am "initial"

如果你使用GitHub,把你的文件也推送到你的中央 repo。

数据库设置

首先,安装MySQL-python,使Python能够与MySQL对话。

$ pip install MySQL-python

在你的 "my_django17_project "目录下编辑_settings.py_。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_db',
        'USER': 'root',
        'PASSWORD': 'your_password',
    }
}

创建你的数据库表并设置一个超级用户。

$ cd my_django18_project
$ python manage.py migrate
$ python manage.py createsuperuser

启动开发服务器。

$ python manage.py runserver

如果到目前为止一切顺利,你应该看到下面的输出。

Performing system checks...

System check identified no issues (0 silenced).
May 19, 2015 - 09:52:02
Django version 1.8, using settings 'my_django18_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

导航到http://127.0.0.1:8000,你应该看到熟悉的浅蓝色的 "它成功了!"页面。

在终端中按下CONTROL-C键,关闭服务器。

pip freeze

安装好依赖项后,使用下面的命令在 "my_django17_project "目录下创建它们的记录,以及它们的后续版本。

$ pip freeze > requirements.txt

当你需要从头开始重新创建你的项目时,这个命令就很方便了。你可以简单地运行pip install -r requirements.txt 来安装你项目的所有依赖项。

将你的新改动提交给Git。

创建一个应用程序

让我们创建一个基本的、单页的应用程序,使用markdown来显示文本。

设置

激活virtualenv,安装下面的包来渲染markdown。

$ pip install django-markdown-deux

更新需求文件以包括新的依赖关系。

$ pip freeze > requirements.txt

在_settings.py_中添加 "markdown_deux"。

INSTALLED_APPS = (

  ... snip ...

  'markdown_deux',
)

在 "my_django1__project "目录_ 下创建一个_名为 "templates "_ 的新目录_,然后加入_ settings.py*文件的_路径_ 。

import os
SETTINGS_DIR = os.path.dirname(__file__)
PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir)
PROJECT_ROOT = os.path.abspath(PROJECT_PATH)
TEMPLATE_DIRS = (
    os.path.join(PROJECT_ROOT, 'templates'),
)

你的项目结构应该是这样的 ...

这用于Django 1.5和1.6。

├── manage.py
├── my_django1*_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── myapp
│   ├── __init__.py
│   ├── migrations
│   │   ├── 0001_initial.py
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── templates

或者这个用于Django 1.7。

├── manage.py
├── my_django17_project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── myapp
│   ├── __init__.py
│   ├── admin.py
│   ├── migrations
│   │   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
└── templates

视图和URL

我们将遵循模型-视图-控制器(MVC)的架构结构。Django项目在逻辑上是围绕这个架构组织的。然而,Django的架构略有不同,因为视图充当了控制器。因此,项目实际上是以模型-模板-视图的架构(MTV)来组织的。是的,这很让人困惑。

视图

在_views.py_文件中添加以下代码。

from django.shortcuts import render_to_response
from django.template import RequestContext


def index(request):
    return render_to_response('index.html')

这个函数接受一个参数,request ,这是一个拥有从浏览器请求页面的用户信息的对象。该函数的响应是简单地渲染_index.html_模板。

URLs

接下来,我们需要在_urls.py_文件中添加一个新的模式。

urlpatterns = patterns(
    '',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', 'myapp.views.index')
)

关于如何生成url模式的更多信息,请从Django官方文档中查看

模板

最后,我们需要创建_index.html_模板。在模板目录下创建一个名为_index.html_的新文件,并添加这里的代码。

启动服务器。看起来怎么样?让我们添加一些样式。

这里的代码替换之前的代码。

好点了吗?

结论

完成添加样式和你认为合适的内容。然后返回到工作流程部分,完成开发过程。如果你需要帮助,请购买Real Python。或者无论如何都要做,以帮助支持这个开源项目。谢谢你。干杯!。

总结工作流程

下面是一个基本的工作流程,你可以把它作为开发Django项目的快速参考。

设置

  1. 在一个新的目录中,创建并激活一个virtualenv。
  2. 安装Django。
  3. 创建你的项目。django-admin.py startproject <name>
  4. 创建一个新的应用程序。python manage.py startapp <appname>
  5. 将你的应用程序添加到INSTALLED_APPS元组中。

添加基本的URLs和视图

  1. 将你的项目的_urls.py_文件映射到新的应用程序中。
  2. 在你的App目录中,创建一个_urls.py_文件来定义你的App的URLs。
  3. 在App的_views.py_中添加与URL相关的视图;确保它们返回一个HttpResponse 对象。根据情况,你可能还需要查询模型(数据库),以获得终端用户要求的所需数据。

模板和静态文件

  1. 在你的项目根目录下创建一个_模板_和_静态_目录。
  2. 更新_settings.py_以包括你的模板的路径。
  3. 在_templates_目录下添加一个模板(HTML文件)。在该文件中,你可以用 -{% load static %}{% static "filename" %} 包括静态文件。另外,你可能需要传入用户要求的数据。
  4. 根据需要更新_views.py_文件。

模型和数据库

  1. 将数据库引擎更新为_settings.py_(如果需要,因为它默认为SQLite)。
  2. 创建并应用一个新的迁移。
  3. 创建一个超级用户。
  4. 在你想要访问的每一个App中添加一个_admin.py_文件。
  5. 为每个应用程序创建你的模型。
  6. 创建并应用一个新的迁移。(每当你对一个模型做_任何_改变时都要这样做)。)

表单

  1. 在应用程序中创建一个_forms.py_文件来定义表单相关的类;在这里定义你的 ModelForm 类。
  2. 添加或更新一个用于处理表单逻辑的视图--例如,显示表单,保存表单数据,提醒用户验证错误,等等。
  3. 添加或更新一个模板来显示表单。
  4. 在App的_urls.py_文件中为新视图添加一个urlpattern

用户注册

  1. 创建一个用户表单
  2. 添加一个用于创建新用户的视图。
  3. 添加一个模板来显示该表单。
  4. 为新的视图添加一个urlpattern。

用户登录

  1. 添加一个用于处理用户凭证的视图。
  2. 创建一个模板来显示一个登录表单。
  3. 为新的视图添加一个urlpattern。

设置模板结构

  1. 找到每个页面的共同部分(即页眉、侧边栏、页脚)。
  2. 将这些部分添加到一个基础模板中
  3. 创建特定的。从基础模板继承下来的模板。

Django学习资源包

Django是一个了不起的Web开发框架,我们在Real Python每天都在使用(realpython.com由Django提供)。

Django 可以让你成为一个高效的 Python 网页开发者--如果你能正确掌握基础知识并避免一些常见的陷阱。

这就是为什么我们把这个免费的 "Django资源包 "放在一起,你可以用来深入挖掘。

🐍 Python 技巧 💌

每隔几天就会有一个短小精悍的Python小技巧送到你的收件箱中。从来没有垃圾邮件。任何时候都可以取消订阅。由Real Python团队策划。

Python Tricks Dictionary Merge