Django 2.0.1 官方文档翻译: 如何安装 django (Page 17)
如何安装 django(Page 17)
这一部分可以让你将 Django 运行起来。
安装 Python
作为 python 的一个 web 框架,Django 依赖 Python。Python 的哪个版本可以使用 Django?
| Django version | Python versions |
|---|---|
| 1.8 | 2.7, 3.2 (until the end of 2016), 3.3, 3.4, 3.5 |
| 1.9, 1.10 | 2.7, 3.4, 3.5 |
| 1.11 | 2.7, 3.4, 3.5, 3.6 |
| 2.0 | 3.4, 3.5, 3.6 |
| 2.1 | 3.5, 3.6, 3.7 |
获取最新版本的 Python 可以在 https://www.python.org/downloads/或者在你的操作系统的管理器里。
Jython 中的 Django
Jython(java 平台上个一个 python 实现)和 python3不兼容,所以 大于等于 2.0 版本的 django 无法运行在 Jython 上。Windows 中的 Python
如果你要在 windows 中运行了 Django, 你可以查看 如何在 windows 中安装 Django(这里差一个链接)
安装 Apache 和 mod_wsgi
如果你只是想尝试使用一下 Django,请跳到下一节;Django 包含一个用于测试的轻量级 web 服务,所以在你准备将Django 部署到生产环境之前,你是不需要安装 Apache 的。
如果想在一个生产环境中的站点使用 Django,可以使用 Apache 和 mod_wsgi。mod_wsgi 有两种操作模式:嵌入式模式和守护模式。 在嵌入式模式,mod_wsgi 类似 mod_perl ——它在 Apache 中嵌入 Python,当服务启动时将 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 支持许多不同的数据库,并且PostgreSQL, MySQL, Oracle and SQLite 都被正式支持。
如果你正在开发一个简单的项目或者其他东西,你也不打算在生产环境中部署,SQLite 通常是最简单的选择,它不需要运行一个单独的服务。不管怎么说,SQLite 还是和其他的数据库有很多不同,如果你在进行一些实质性工作的时候,建议你部署和生产环境中要使用的数据库相同的数据库。
除了官方支持的数据库,还有第三方提供的数据库后端(这里差一个链接),让你在 Django 中使用其他的数据库。
除了数据库后端,你还需要确认你的 Python数据库绑定已经安装。
- 如果你使用 PostgreSQL ,你需要安装 psycopg2 。更多信息请参阅 PostgreSQL notes(这里差一个链接)。
- 如果你使用 MYSQL,你需要安装类似mysqlclient的DB API 驱动(这里差一个链接)。更多信息请参阅 notes for the MySQL backend(这里差一个链接)
- 如果你使用 SQLite,你可能会想要阅读 SQLite backend notes(这里差一个链接)
- 如果你使用 Oracle,你需要复制一份 cx_Oracle ,还需要阅读notes for the Oracle backend(这里差一个链接)了解更多信息,以考虑Oracle and cx_Oracle都支持的版本。
- 如果你使用非官方的第三方数据库后端,请查阅文档中提及的其他依赖。
如果你计划用 Django 的 manage.py migrate 命令为你的 models自动创建数据库表(在第一次安装 Djnago 并创建项目之后),你需要确认,DJnaog 有权限创建和修改该你使用的数据库表。如果你计划手动创建数据库表,你可以简单的授权 Django 使用SELECT, INSERT, UPDATE,DELETE的权限,在创建有这些权限的数据库用户后,你需要在你的项目的配置文件中指定这些信息。详细信息请看这里(这里差一个链接)。
如果你在使用 Django 的测试框架(这里差一个链接)测试数据库查询,Django 还需要创建一个测试数据库的权限。
卸载旧版本的 Django
如果你正在将一个旧版本的 Django 升级到新版本,你需要在安装新版本 Django 之前先卸载旧版本的 Django。
如果你使用 pip 或者 easy_install 安装的 Django。使用 pip 或者 easy_install 再次安装一次即可,它们会自动更新旧版本到新版本,所以你不需要自己管理安装。
如果你以前是用python setup.py install 安装的 Django,删除也很简单,删除 Python 安装目录中 site-packages下的 django 目录即可。找到你要删除的目录,有可以在 shell 中执行执行以下命令:
$ python -c "import django; print(django.__path__)"
安装 django 代码
针对不同版本的安装包,安装指南略有不同,是选择最新的正式版本,还是选择最新的开发版本。
使用 pip 安装一个正式版本
这是安装 Django 的的建议方式:
1. 安装 pip,最简单的方式使用独立的 pip 安装器。如果你已经安装了 pip,你可能需要更新它,你知道,如果他已经过时了,安装会失败。
2. 去看一下看 virtualenv和 virtualenvwrapper。这些工具提供隔离的 Python 环境,它比安装在系统里更实用。它还可以让你即使没有管理员权限也可以安装包。这里提供的教程(这里少一个链接)会告诉你如何创建virtualenv环境。
3. 创建和激活一个虚拟环境之后,在 shell 提示符后输入命令 pip install Django
安装指定版本的包
检查发布版本的具体记录,去看看你使用的平台/发布版 是否提供正式版本的 Django 安装包或者安装器。提供的分发版本通常可以自动安装依赖和易于升级的方法。不管如何,这些安装包很少会包含最新版本的 Django。
安装开发版本
跟踪 Django 开发版
如果你决定使用最新的开发版,你要密切关注 开发时间线,并且要注意 即将发布的发行版(这里差一个链接)。这会让你想使用的新功能以及任何变化都保持在最新,当你更新 Django 的时候,你也需要当你的代码进行更新。(对于稳定版,任何必要的改变都会记录在发布说明中。)
如果你偶尔想要更新你的 Django,使用最新的 bug 修复和实现,可以看下面的内容:
1. 确保已经安装了 Git并且你可以在 shell 中运行它,(可以在 shell 中执行git help命令来验证)
2. 检查 DJnaog 的主开发分支,命令如下:
$ git clone https://github.com/django/django.git
这会在你的当前目录创建一个名字为 django 的目录。
3. 确认 Python 解释器可以加载 Django 的代码。要做到这点最方便的方法是使用 virtualenv, virtualenvwrapper, 和 pip.这里提供的教程(这里少一个链接)会告诉你如何创建virtualenv环境。
4. 在建立并激活 virtualenv 后,运行下面的命令:
$ pip install -e django/
这样就就导入了 Djnago 的代码,也会是 django-admin工具命令生效。也就是说,你已经为使用 Django 做好了准备。
当你想要更新的 django 源代码拷贝时,只需要在 django 目录运行 git pull命令,执行之后,Git 会自动下载所有的更新
Django 2.0.1 官方文档翻译: 如何安装 django (Page 17)的更多相关文章
- Django 2.0.1 官方文档翻译: 快速安装向导 (Page5)
快速安装向导 (Page 5) 在你使用 Django 前,你需要先安装它.我们有一个完整的安装向导,它包含所有涉及的内容,这个向导会指导你进行一个简单的.最小化的安装,当你通过浏览介绍内容的时候,这 ...
- Django 2.0.1 官方文档翻译: 文档目录 (Page 1)
Django documentation contents 翻译完成后会做标记. 文档按照官方提供的内容一页一页的进行翻译,有些内容涉及到其他节的内容,会慢慢补上.所有的翻译内容按自己的理解来写,尽量 ...
- Django 2.0.1 官方文档翻译: 编写你的第一个 Django app,第一部分(Page 6)
编写你的第一个 Django app,第一部分(Page 6)转载请注明链接地址 Django 2.0.1 官方文档翻译: Django 2.0.1.dev20171223092829 documen ...
- Django 2.0.1 官方文档翻译:编写你的第一个djang补丁(page 15)
编写你的第一个djang补丁(page 15) 介绍 有兴趣为社区做一些贡献?可能你发现了django中的一个你想修复的bug,或者你你想添加一个小小的功能. 回馈django就是解决你遇到的问题的最 ...
- Django 2.0.1 官方文档翻译:接下来读什么(page 14)
接下来读什么(page 14) 现在你应该已经阅读了所有的(page1-13 )介绍材料,决定继续使用Django.我们仅仅做了简要的介绍(事实上,如果你阅读了前面所有的内容,也只是全部文档的5%.) ...
- Django 2.0.1 官方文档翻译: 编写你的第一个 Django app,第二部分(Page 7)
编写你的第一个 Django app,第二部分(Page 7)转载请注明链接地址 本教程上接前面的教程.我们会配置数据,创建你的第一个 model,并对Django 自动生成的 admin 站点进行快 ...
- Django 2.0.1 官方文档翻译:编写你的第一个 Django app,第六部分(Page 11)
编写你的第一个 Django app,第六部分(Page 11)转载请注明链接地址 本教程上接前面第五部分的教程.我们构建了一个经过测试的 web-poll应用,现在我们会添加一个样式表和一张图片. ...
- Django 2.0.1 官方文档翻译: 编写你的第一个 Django app,第三部分(Page 8)
编写你的第一个 Django app,第三部分(Page 8)转载请注明链接地址 本页教程接前面的第二部分.我们继续开发 web-poll app,我们会专注于创建公共接口上 -- "视图& ...
- Django 2.0.1 官方文档翻译: 高级教程:如何编写可重用的app (page 13)
高级教程:如何编写可重用的app (page 13) 本节教程上接第七部分(Page 12).我们会把我们的 web-poll应用转换成一个独立的python包,你可以在新的项目中重用或者把它分享给其 ...
随机推荐
- PAT 甲级 1143 Lowest Common Ancestor
https://pintia.cn/problem-sets/994805342720868352/problems/994805343727501312 The lowest common ance ...
- windows多线程(二) 等待线程返回
多线程编程中,有时我们需要等待某一线程完成了特定的操作后再继续做其他事情,要实现这个目的,可以使用Windows API函数WaitForSingleObject,或者WaitForMultipleO ...
- HDU3452_Bonsai
题目的意思是给你一个棵树,每天边上有一个权值,现在要想根节点和每个叶子节点完全隔离开来,删除一些边,求最少需要删除的边权值综合是多少? 直接建模,以根节点为汇点,每个叶子节点连接虚拟源点流量无穷,树上 ...
- [BZOJ3712]Fiolki 重构树(并查集)
3712: [PA2014]Fiolki Time Limit: 30 Sec Memory Limit: 128 MB Description 化学家吉丽想要配置一种神奇的药水来拯救世界.吉丽有n ...
- 【UOJ228】基础数据结构练习题(线段树)
[UOJ228]基础数据结构练习题(线段树) 题面 UOJ 题解 我们来看看怎么开根? 如果区间所有值都相等怎么办? 显然可以直接开根 如果\(max-sqrt(max)=min-sqrt(min)\ ...
- 【ZJOI 2018】 历史(lct)
历史 题目描述 九条可怜是一个热爱阅读的女孩子. 这个世界有 $n$ 个城市,这 $n$ 个城市被恰好 $n-1$ 条双向道路联通,即任意两个城市都可以互相到达.同时城市 $1$ 坐落在世界的中心,占 ...
- BZOJ3601 一个人的数论 【数论 + 高斯消元】
题目链接 BZOJ3601 题解 挺神的 首先有 \[ \begin{aligned} f(n) &= \sum\limits_{x = 1}^{n} x^{d} [(x,n) = 1] \\ ...
- 一次绕过防火墙获取RCE以及提权到root权限的渗透过程
本文是关于Apache struts2 CVE-2013-2251是由于导致执行远程命令的影响而被高度利用的漏洞.简而言之, 通过操纵以“action:”/”redirect:”/”redirectA ...
- 单点登录(三)-----实战-----cas server 源码下载和部署
我们在上一篇文章中使用的是4.0版本的cas,4.0版本的有发布好的war包可以直接使用,那如果我们要使用更新的版本怎么办呢? 就需要下载源码自己编辑打包了. 步骤如下: 版本选择 我们在cas的gi ...
- java多线程 --ConcurrentLinkedQueue 非阻塞 线程安全队列
ConcurrentLinkedQueue是一个基于链接节点的无界线程安全队列,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部:当我们获取一个元素时,它会返回队列头 ...