如何安装 Django

本文档将帮助您使用 Django。

安装 Python

Django 是一个用于 Python 的网络框架。有关详细信息,请参阅 我应该使用哪个版本的 Python 来配合 Django?

可以通过 https://www.python.org/downloads/ 或者操作系统的包管理工具获取最新版本的 Python。

Windows 上的 Python

如果您刚刚开始学习 Django 并且使用 Windows,查看 如何在 Windows 上安装 Django 可能对你有帮助。

安装 Apache 和 mod_wsgi

如果您只是想试验 Django,请跳到下一部分;Django 包含一个可用于测试的轻量级 Web 服务器,因此在准备好在生产环境中部署 Django 之前,您不需要设置 Apache。

如果您想在生产站点上使用 Django,请使用 Apachemod_wsgi。mod_wsgi 有两种模式:嵌入模式和守护模式。在嵌入模式下,mod_wsgi 类似于 mod_perl -- 它将 Python 嵌入到 Apache 中,并在服务器启动时将 Python 代码加载到内存中。代码在整个 Apache 进程的生命周期内保持在内存中,这会比其他服务器配置方式带来显著的性能提升。在守护模式下,mod_wsgi 会生成一个独立的守护进程来处理请求。守护进程可以以与 Web 服务器不同的用户身份运行,从而可能提高安全性。守护进程可以在不重新启动整个 Apache Web 服务器的情况下重新启动,从而可能使代码库的刷新更加无缝。请参考 mod_wsgi 文档以确定哪种模式适合您的设置。确保已安装 Apache 并启用了 mod_wsgi 模块。Django 将与支持 mod_wsgi 的任何版本的 Apache 配合使用。

若已安装 mod_wsgi 模块,请查看 Django 如何利用 mod_wsgi 工作 了解如何配置。

如果由于某种原因你不能使用 mod_wsgi,请不要担心: Django 支持许多其他部署选项。一个是 uWSGI ;它和 nginx 配合使用很好。此外,Django 遵循 WSGI 规范( PEP 3333 ),允许它在各种服务器平台上运行。

运行你的数据库

如果你打算使用 Django 的数据库 API 功能,你需要确保一个数据库服务器正在运行。Django 支持许多不同的数据库服务器,官方支持 PostgreSQLMariaDBMySQLOracleSQLite

如果你正在开发一个小项目或不打算在生产环境中部署的东西,SQLite 通常是最好的选择,因为它不需要运行一个单独的服务器。然而,SQLite 与其他数据库有许多不同之处,所以如果你正在开发一些实质性的东西,建议使用你计划在生产中使用的同一数据库进行开发。

除了官方支持的数据库,还有 第三方提供的后端 允许你在 Django 中使用其他数据库。

To use another database other than SQLite, you'll need to make sure that the appropriate Python database bindings are installed:

  • 如果您使用 PostgreSQL,您将需要 psycopgpsycopg2 包。有关更多详细信息,请参阅 PostgreSQL notes
  • 如果你正在使用 MySQL 或 MariaDB,则需要一个像 mysqlclient 一样的 DB API 驱动。 详细信息参见 MySQL 后端注意事项
  • 如果你正在使用 SQLite,则可能需要阅读 SQLite 后端笔记
  • 如果你使用的是 Oracle,你需要安装 oracledb,但请阅读 Oracle 后端的说明 以了解有关支持的 Oracle 版本和 oracledb 的详细信息。
  • 如果你使用的是非官方的第三方后端,请参阅提供的文档以了解任何其他要求。

And ensure that the following keys in the 'default' item of the DATABASES dictionary match your database connection settings:

  • ENGINE -- 可选值有 'django.db.backends.sqlite3''django.db.backends.postgresql''django.db.backends.mysql',或 'django.db.backends.oracle'。其它 可用后端
  • NAME -- The name of your database. If you’re using SQLite, the database will be a file on your computer. In that case, NAME should be the full absolute path, including the filename of that file. You don’t need to create anything beforehand; the database file will be created automatically when needed. The default value, BASE_DIR / 'db.sqlite3', will store the file in your project directory.

SQLite 以外的其它数据库

如果你不使用 SQLite,则必须添加一些额外设置,比如 USERPASSWORDHOST 等等。想了解更多数据库设置方面的内容,请看文档:DATABASES

Also, make sure that you've created the database by this point. Do that with "CREATE DATABASE database_name;" within your database's interactive prompt.

如果你打算使用 Django 的 manage.py migrate 命令为你的模型自动创建数据库表(首先安装 Django 并创建项目后),你需要确保 Django 有权限在你使用的数据库中创建和修改表;如果你打算手动创建表,你可以授予 Django SELECTINSERTUPDATEDELETE 权限。创建具有这些权限的数据库用户后,你将在项目的配置文件中指定详细信息,详细信息参见 DATABASES

如果你正在使用 Django 的 测试框架 来测试数据库查询,Django 将需要创建测试数据库的权限。

安装 Django 源码

安装过程可能会有些许差异,这取决于你是否在安装一个发行版——某个特定的版本,下载最新的正式发布包,或获取最新的开发版本。

通过 pip 安装正式发布版本

以下是安装 Django 的推荐方式。

  1. 安装 pip。最简单的方式是使用 独立 pip 安装器。若你的系统早已安装 pip,你可能需要更新它,因为它可能过期了。如果它过期了,你会知道的,因为过期的用不了。

  2. 看一下 venv。这个工具提供了隔离的Python环境,比在系统内安装包更实用。它还允许在没有管理员权限的情况下安装包。贡献指南 介绍了如何创建一个虚拟环境。

  3. 在你已创建并激活一个虚拟环境后,输入以下命令:

    $ python -m pip install Django
    
    ...\> py -m pip install Django
    

安装特定发行版

查看 特定发行版注意事项 以查看你的平台/发行版是否提供了官方的 Django 软件包/安装程序。 发行版提供的软件包通常将允许自动安装依赖项和且易于升级; 但是,这些软件包很少包含最新版本的 Django。

安装开发版本

跟踪 Django 开发

如果你决定使用 Django 的最新开发版,你需要关注 开发版时间轴即将到来的新特性的发布说明。这将保证你能获取所有新特性和最新的代码。(对于稳定发布版,所有必要的修改都在发布说明中记录。)

如果你希望偶尔能获取最新的补丁和改进,遵循以下说明:

  1. 确保你已安装了 Git,这样你就可以从 shell 运行对应命令。(在 shell 中输入 git help 测试是否安装。)

  2. 像这样检出 Django 的主开发分支:

    $ git clone https://github.com/django/django.git
    
    ...\> git clone https://github.com/django/django.git
    

    这会在当前目录创建一个 django 目录。

  3. 确保 Python 解释器可以加载 Django 的代码。最方便的方法是使用虚拟环境和 pip贡献指南 简略介绍了如何创建虚拟环境。

  4. 设置并激活虚拟环境后,运行以下命令:

    $ python -m pip install -e django/
    
    ...\> py -m pip install -e django\
    

    这会让 Django 的代码可导入,使得 django-admin 命令行工具可用。换句话说,大事可为。

当你想更新你的 Django 源代码时,在 django 目录下运行 git pull 命令。当你这样做的时候,Git 会下载所有变更。

Back to Top