它包含两部分:

  • 一个公开站点,允许人们查看投票并对它们投票。
  • 一个管理后台站点,允许你添加、更改和删除投票。

你可以通过在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代码:

polls/views.py
HttpResponse


):
    )

要调用视图,我们需要将其映射到URL — 为此我们需要一个URLconf。

你的应用的目录应该如下所示:

/
    py
    py
    py
    /
        py
    py
    py
    py
    py

polls/urls.py文件中包含以下代码:

polls/urls.py
url

views

[
    ),
]

urlpatterns列表, 这样你就有了:

mysite/urls.py
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的这个功能。

url()参数:name

这个强大的功能允许你在仅接触单个文件的情况下对项目的URL模式进行全局更改。

本教程的第2部分开始与数据库一起工作。

相关文章: