在使用django之前,我们需要把它先安装好。我们这里有一个完整的安装指南,涵盖了所有的可能性; 本指南将引导您通过简单的,最小化安装。
windows 安装参考:
作为一个python web框架,django 需要 python 环境的支持。python中包括一个轻量级的数据库:sqlite,所以我们不会需要建立数据库。
获得 python 的最新版本在以下网址: 或选择你对应操作系统的软件包管理器。
可以验证python是否安装,通过从shell 键入python; 应该看到类似这样输出结果:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08 python 3.4.x [gcc 4.x] on linux type "help", "九游会下载 copyright", "credits" or "license" for more information. >>>
如果想使用像postgresql,mysql和oracle这些一个“大”数据库引擎工作。要安装这样的数据库,请查阅 。
如果您是从旧版本升级安装django的等方面,需要 。
一般使用三个简单的选项来安装django:
安装由。 这是最快的选择对于那些有分发django的操作系统。
安装 。这是大多数用户的最佳方法。
安装最新开发版本。此选项是那些想要最新的,并且不怕新代码有bug的爱好者。您可能会遇到在开发新版本遇到bug,并报告给他们以帮助django的发展。另外,第三方软件包版本在开发版本不太可能比最新的稳定版本兼容。
我们假设你的 django 存档并且 python 安装在计算机上,当前的最新版本是:1.9.1,可通过以下网址下载:
首先,路径验证。
在某些版本的windows(windows 7)中,需要确保 path 系统变量的路径如下:c:\python27\;c:\python27\lib\site-packages\django\bin\ 在里面,当然这取决于你的python版本。
然后,提取和安装django,这里我们把解压到 c:\python27\
接下来,通过运行以下命令,在windows shell “cmd” 可能需要管理权限来安装django −
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08 ', monospace;line-height:1.5;">c:\python27\django-1.9.1 >python setup.py install
要测试你的安装,打开命令提示符,从 shell 输入python可以看到。然后在python提示符,尝试导入django:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08 >>> import django >>> print(django.get_version()) 1.9.1
这就算安装完成了。接下来我们要进入开发的第一步。
让我们开始创建一个web应用程序并一步步地学习。
在本教程中,将引导您完成创建一个基本的民意调查 (poll) 的应用。
这将包括两部分:
一个公共网站,让人们在上面查看投票和投票。
一个网站管理,您可以添加,更改和删除投票。
假设你的 django 已经安装完成。可以确认 django 安装和版本,运行以下命令:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08 $ python -c "import django; print(django.get_version())"
如果安装 django,你应该看到安装的版本。如果还未安装会得到一个错误提示: “no module named django”。
本教程是使用 django1.9和python2.7或更高版本编写的。如果django的版本不匹配,您可以通过使用版本切换 django 版本,或者 django 更新到最新版本。如果还在使用python2.7,则需要稍微调整代码,如在注释中描述。
如果第一次使用django,必须采取一些初始设置。也就是说,需要自动生成一些代码,建立一个django项目 - 设置django实例的集合,包括数据库配置,django 特定选项和特定应用程序设置。
在命令行,cd 到你想要存储代码目录,比如,这里我创建项目的地方是:c:\python7\ ,然后运行以下命令:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08c:\python27> django-admin startproject mysite
这将在 c:\python17下创建 mysite 目录。如下图:
让我们来看看 startproject 命令创建的目录结构:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08 mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py
对上面这些文件的简要说明:
在 mysite/ 根目录上级仅仅是一个容器项目。对于django它的名字随意,可以将其重命名为任何你喜欢的。
manage.py: 一个命令行工具,可以让您以各种方式与django项目进行交互。你可以阅读所有关于manage.py 在 。 内部 mysite/目录是实际项目的python包。它的名字是你需要使用导入里面的任何python包的名称(例如mysite.urls)。 mysite/__init__.py: 一个空文件,该文件告诉python这个目录应该作为一个python包。 mysite/settings.py: 设置/配置这个django项目。 django的设置,会告诉你如何设置工作。 mysite/urls.py: 该 url 声明这个django项目; 类似django网站的一个“表的内容”。 mysite/wsgi.py: 一个wsgi兼容web服务器的入口点,以满足您的项目需要。
让我们来验证你的django项目工程。更改到外mysite的目录,如果你有没有准备好,并运行以下命令:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08c:\python27\mysite> python manage.py runserver
你会看到在命令行下面的输出:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08 performing system checks... system check identified no issues (0 silenced). you have unapplied migrations; your app may not work properly until they are applied. run 'python manage.py migrate' to apply them. january 24, 2016 - 15:50:53 django version 1.9, using settings 'mysite.settings' starting development server at http://127.0.0.1:8000/ quit the server with control-c.
你已经启动django开发服务器,它是用python写的纯粹一个轻量级的web服务器。我们已经包含在 django 中了,所以你可以很快开发东西了,而不必处理配置生产服务器 - 如:apache 。
需要注意的是:不要在任何类似生产环境中使用此服务器。它的目的只是用于开发(我们是在使用web框架,而不是web服务器的业务。)
现在,服务器的运行,请使用web浏览器访问: 。会看到一个“welcome to django”页面。这表示它安装成功了!
默认情况下 runserver 命令启动就在内部ip开发服务器的端口 8000。
如果你想改变服务器的端口,将它作为命令行参数。例如,下面这个命令会在服务器8080端口运行:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08 $ python manage.py runserver 8080
如果想改变服务器的ip,传递给它端口。(如果你想暴露在其他计算机或网络上工作)所有公网ip听,使用以下方法:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08 $ python manage.py runserver 0.0.0.0:8000
现在的“project” - 设置完毕后就开始可以工作了。
在django写的每个应用程序包含一个python包,遵循一定的约定。 django提供了一个实用程序,自动生成一个应用程序的基本目录结构,这样就可以专注于写代码而不是建立目录。
应用程序可以在python路径中的任何地方。在本教程中,我们将创建投票程序在 manage.py 文件同级目录中,以便它可以被导入作为自己的顶层模块,而不是 mysite 的一个子模块。
在创建应用程序前,确保你在 manage.py 同一个目录中并键入以下命令:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08c:\python27\mysite> python manage.py startapp polls
这将创建一个目录polls,这是目录结构是这样的:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08 polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py
这个目录结构中的 poll 应用程序。
现在我们来编写的第一个视图。打开文件polls/views.py,把下面的python代码放入里面:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08 from django.conf.urls import url from . import views urlpatterns = [ url(/uploads/image/bdjango/r'^,-nbsp;views.index,-nbsp;name='index'), ] , views .index, name = 'index'), ]
下一步骤是让 polls.urls 模块指向该root_urlconf。在 mysite/urls.py 中, 增加导入 django.conf.urls.include 并插入 include() 在url模式列表中,所以这里有:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08 from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(/uploads/image/bdr'^polls/',-nbsp;include('polls.urls')), url(/uploads/image/bdr'^admin/',-nbsp;admin.site.urls), ]
现在已经连接索引视图到url配置。让我们来验证它结果,运行以下命令:
# filename : example.py # 九游会下载 copyright : 2020 by nhooo # author by : https://www.elefans.com/biancheng/ # date : 2020-08-08 ', 'lucida sans', line-height:1.5;">c:\python27\mysite> python manage.py runserver
在浏览器中打开 http://localhost:8000/polls/,应该看到如下文字显示: “hello, world. you’re at the polls index.”, 在 index 视图中所定义。
函数传递四个参数,两个必需的:regex 和 view,以及两个可选:kwargs 和 name。
术语“regex”是一种常用的缩写形式,意思是“正则表达式”,这是一个语法字符串匹配模式,或在我们的示例中是url模式。django从第一个正则表达式开始,并使得其遍历列表,比对每一个正则表达式的请求的url,直到它找到一个匹配。
请注意,这些正则表达式不搜索get和post参数,或者域名。例如,在一个请求https://www.example.com/myapp/, urlconf 会寻找myapp/.在一个请求 https://www.example.com/myapp/?page=3, urlconf 还将寻找 myapp/.
如果需要使用正则表达式的帮助,请参见维基百科的条目和 模块的文档。 然而在实践中,你并不需要成为正则表达式的专家,因为只需要知道如何捕捉简单的模式。事实上,复杂的正则表达式可以查找性能较差,所以你可能不依赖于正则表达式的全部功能。
最后,一个关于性能的事项需要了解:这些正则表达式编译首次url配置模块被加载。它们是超级的快(只要查找东西不是太复杂 - 如上所述)。
当 django 找到正则表达式匹配,django调用指定的视图函数,使用 http 请求对象作为第一个参数,从正则表达式“捕获”的其他参数作为其它的值。 正则表达式使用简单的捕捉,值传递是通过位置参数;如果使用名为捕捉,值传递关键字参数。我们将给出一个实例。
任意关键字参数可以通过在字典中的目标视图。在本教程我们不打算使用django的这一特点。
命名网址可以参考它,明确地从其他地方在django - 尤其是模板。 这种强大的功能可让您进行全局更改到项目的url模式,而只需要修改一个文件。接下来我们学习如何在 django 使用数据功能。 快速入门系列教程: