它包含两部分:
- 一个公开站点,允许人们查看投票并对它们投票。
- 一个管理后台站点,允许你添加、更改和删除投票。
你可以通过在shell提示符(以$前缀表示)中运行以下命令来检查Django是否已安装及其版本:
$ python -m django --version
如果还没有安装,你会看到一个“No module named django”的错误。
如果你还在使用2.7版本的Python,你将需要按照注释中的内容稍微调整一下示例代码。
如何安装Django中的建议。
你可以在下列地址寻求帮助:
#django on irc.freenode.net与其他可能会帮助你的Django用户交流。
项目 — 一个Django实例的设置集合,包括数据库的配置、Django有关的选项和应用有关的选项。
cd到要存储代码的目录,然后运行以下命令:
$ django-admin startproject mysite
运行django-admin遇到的问题。
注意
django(与Python内建的包冲突)这样的名称。
代码应该存在哪里?
这样不安全。
/home/mycode。
startproject生成了什么:
/
py
/
py
py
py
py
这些文件是:
- 它的名字与Django无关;可以将其重命名为你喜欢的任何内容。
- manage.py的所有细节。
- mysite.urls)。
- 关于python包的更多内容。
- Django settings 将告诉你这些设置如何工作。
- URL dispatcher 中阅读到更多关于URL的内容。
- 如何使用WSGI部署。
¶
mysite 目录内,并运行以下命令:
$ python manage.py runserver
你将看到命令行下输出了以下内容:
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. (运行'python manage.py migrate'来应用它们。) September 06, 2017 - 15:50:53 Django version 1.11, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
注
暂时忽略有关未应用数据库迁移的警告;我们很快就会处理数据库。
我们在Django中内置了它,这样你就可以在不配置用于生产环境的服务器 —— 例如Apache —— 的情况下快速开发出产品,直到你准备好上线。
(我们的重点是编写Web框架,非Web服务器。)
它运行成功了!
更改端口
runserver命令在内部IP的8000端口启动开发服务器。
例如,这个命令在8080端口启动服务器:
8080
例如,要监听所有可用的公共IP(如果你正在运行Vagrant或想要在网络上的其他计算机上炫耀你的工作),请使用:
0:8000
runserver的参考手册中找到。
runserver的自动重载
然而,一些行为比如添加文件,不会触发服务器的重启,所以在这种情况下你需要手动重启服务器。
现在,你的开发环境 —— 一个“项目” —— 已经建立起来,你将开始在上面做一些东西。
Django自带一个工具,它可以自动生成应用的基本目录结构,这样你就能专心于书写代码而不是创建目录。
应用和项目的区别
一个应用可以运用到多个项目中去。
mysite的子模块。
manage.py在同一目录中,并键入以下命令:
$ python manage.py startapp polls
polls,它的结构如下:
/
py
py
py
/
py
py
py
py
我们的polls应用将基于这个目录结构。
¶
polls/views.py,并在其中放入以下Python代码:
HttpResponse
):
)
要调用视图,我们需要将其映射到URL — 为此我们需要一个URLconf。
你的应用的目录应该如下所示:
/
py
py
py
/
py
py
py
py
py
polls/urls.py文件中包含以下代码:
url
views
[
),
]
urlpatterns列表, 这样你就有了:
url
admin
[
)),
url(r'^admin/', ),
]
include()时,它将删除与此相匹配的URL部分,并将剩余的字符串发送到包含的URLconf进行进一步处理。
polls/urls.py)中,它们可以放在“/polls/”下或“/fun_polls/”下或“/content/polls/”下,或任何其他路径根,并且应用程序仍然可以工作。
include()
admin.site.urls是唯一的例外。
与你看到的不一致?
你应该切换到旧版本或者新版本的Django。
让我们验证它的工作,运行以下命令:
$ python manage.py runserver
index视图中定义的。
在这里,值得重新审视这些参数。
url()参数:regex
Django从第一个正则表达式开始,在列表中自上而下匹配,将请求的URL与每个正则表达式进行比较,直到找到匹配的一个。
myapp/。
实际上,复杂的正则表达式的查找性能可能很差,所以你可能不应该依靠正则表达式的全部功能。
它们超级快(只要查找不是太复杂,如上所述)。
url()参数:view
我们稍后会给出一个例子。
url()参数:kwargs
我们不会在该教程中使用Django的这个功能。