Django是一个高水平的Python Web框架,它鼓励快速开发和简洁、务实的设计。
在本教程中,我们将回答_"如何从头设置一个Django(1.5、1.6、1.7或1.8)项目?"_换句话说,你将学习如何安装Django以及如何设置你的Django项目结构。
以下是你如何充分利用本教程的内容。
- 读完介绍和设置部分。
- 然后选择你的毒药--Django 1.5, 1.6, 1.7, 1.8--来设置一个Django项目。
- 在完成最初的项目设置后,下移到创建一个应用程序部分,以设置一个漂亮而简单的应用程序。
- 然后查看工作流程摘要,了解Django项目的快速入门指南。
免费奖励: 点击这里可以获得免费的Django学习资源指南(PDF),该指南向你展示了在构建Python+Django网络应用程序时需要避免的技巧和窍门以及常见的陷阱。
简介
本教程回答了_"如何从头设置一个Django项目 "_的问题。既然你在读这篇文章,我假设(呃,希望)你知道Django是一个为快速网络开发而建立的Python网络框架。我们将通过设置,详细介绍Django的基本安装程序和所需的依赖性,以及一些额外的库/扩展,让你尽快开始开发。
我们也会看一下基本的工作流程,你可以在你的项目结构设置完成后立即使用。
最后,一定要看一下下面的视频。
虽然这些视频是针对Django 1.5的,但它们也会帮助你了解Django 1.6、1.7和1.8的基本工作流程。
教程要求
你应该有一些Python的经验,并且知道基本的Unix bash命令。如果你以前从未使用过命令行,请熟悉以下命令:pwd、cd、ls、rm_和_mkdir。
为了简单起见,所有的例子都使用Unix风格的提示符。
$ python manage.py runserver
(美元符号不是命令的一部分)。
Windows的对应命令。
C:\> python manage.py runserver
设置
你需要一个基本的Django开发环境。
- Python 2.7.x 或 3.4.x
- easy_install和Pip
- Git
- 虚拟环境
- Django
- 数据库(SQLite、MySQL、PostgreSQL、MongoDB,等等)。
- 南方(适用于1.7之前的Django版本
- 文本编辑器 (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日,最引人注目的新功能包括。
- 可配置的用户模型。你不再被迫使用Django对 "用户 "的定义,现在你可以推出自己的用户模型,创建自定义字段,比如--社交档案的链接、出生日期、最喜欢的颜色等等。
- 支持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
工作流程
现在你的应用程序已经设置好了,每次你想对你的应用程序进行修改时,请遵循这些简单的工作流程。
基本的。
- 导航到你的项目
- 激活virtualenv
- 开发
- 提交修改
- 部署
- 停用virtualenv
高级。
- 导航到你的项目
- 激活virtualenv
- 创建并签出一个新的git分支
- 开发
- 提交修改
- 将新分支与主分支合并
- 把改动拉到生产文件夹中
- 部署
- 停用virtualenv
干杯!有什么问题吗?有建议吗?
让我们创建一个基本的应用程序
Django 1.6
首次发布于2013年11月6日,最引人注目的新功能包括。
- 支持Python 3。对Python 3的支持现在是官方的,没有任何限制,所以你可以在生产中运行它。
- 改进的数据库事务管理。API更精简,更干净,更简单,使回滚和错误处理更容易。
- 新的测试运行器
- 持久的数据库连接
想要阅读完整的发布说明?请在这里查看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就会知道south 和myapp 。
打开_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日首次发布,最引人注目的新功能包括。
- 数据库迁移。Django现在内置了对进行数据库模式更改的支持,这是基于南。这是很重要的!
- 改进的系统检查工具,用于验证和检查你的项目
- 重构了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日首次发布,最值得注意的新功能包括。
- 新的PostgreSQL特定功能。这增加了新的PostgreSQL特定的ModelFields--ArrayField、HStoreField和Range Fields。请看我们的博文:Fun With Django's New Postgres Features,了解更多信息。
- 多种模板引擎。现在你可以使用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项目的快速参考。
设置
- 在一个新的目录中,创建并激活一个virtualenv。
- 安装Django。
- 创建你的项目。
django-admin.py startproject <name> - 创建一个新的应用程序。
python manage.py startapp <appname> - 将你的应用程序添加到INSTALLED_APPS元组中。
添加基本的URLs和视图
- 将你的项目的_urls.py_文件映射到新的应用程序中。
- 在你的App目录中,创建一个_urls.py_文件来定义你的App的URLs。
- 在App的_views.py_中添加与URL相关的视图;确保它们返回一个
HttpResponse对象。根据情况,你可能还需要查询模型(数据库),以获得终端用户要求的所需数据。
模板和静态文件
- 在你的项目根目录下创建一个_模板_和_静态_目录。
- 更新_settings.py_以包括你的模板的路径。
- 在_templates_目录下添加一个模板(HTML文件)。在该文件中,你可以用 -
{% load static %}和{% static "filename" %}包括静态文件。另外,你可能需要传入用户要求的数据。 - 根据需要更新_views.py_文件。
模型和数据库
- 将数据库引擎更新为_settings.py_(如果需要,因为它默认为SQLite)。
- 创建并应用一个新的迁移。
- 创建一个超级用户。
- 在你想要访问的每一个App中添加一个_admin.py_文件。
- 为每个应用程序创建你的模型。
- 创建并应用一个新的迁移。(每当你对一个模型做_任何_改变时都要这样做)。)
表单
- 在应用程序中创建一个_forms.py_文件来定义表单相关的类;在这里定义你的 ModelForm 类。
- 添加或更新一个用于处理表单逻辑的视图--例如,显示表单,保存表单数据,提醒用户验证错误,等等。
- 添加或更新一个模板来显示表单。
- 在App的_urls.py_文件中为新视图添加一个
urlpattern。
用户注册
- 创建一个用户表单
- 添加一个用于创建新用户的视图。
- 添加一个模板来显示该表单。
- 为新的视图添加一个urlpattern。
用户登录
- 添加一个用于处理用户凭证的视图。
- 创建一个模板来显示一个登录表单。
- 为新的视图添加一个urlpattern。
设置模板结构
- 找到每个页面的共同部分(即页眉、侧边栏、页脚)。
- 将这些部分添加到一个基础模板中
- 创建特定的。从基础模板继承下来的模板。
Django学习资源包
Django是一个了不起的Web开发框架,我们在Real Python每天都在使用(realpython.com由Django提供)。
Django 可以让你成为一个高效的 Python 网页开发者--如果你能正确掌握基础知识并避免一些常见的陷阱。
这就是为什么我们把这个免费的 "Django资源包 "放在一起,你可以用来深入挖掘。
🐍 Python 技巧 💌
每隔几天就会有一个短小精悍的Python小技巧送到你的收件箱中。从来没有垃圾邮件。任何时候都可以取消订阅。由Real Python团队策划。