python django教程_Django快速入门

>>> import django

>>> print(django.get_version())

1.9.1

这就算安装完成了。接下来我们要进入开发的第一步。

开发第一个Django app

让我们开始创建一个Web应用程序并一步步地学习。

在本教程中,将引导您完成创建一个基本的民意调查 (poll) 的应用。

这将包括两部分:

一个公共网站,让人们在上面查看投票和投票。

一个网站管理,您可以添加,更改和删除投票。

假设你的 Django 已经安装完成。可以确认 Django 安装和版本,运行以下命令:

$ 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\ ,然后运行以下命令:

C:\python27>django-admin startproject mysite

这将在 C:\python17下创建 mysite 目录。如下图:

40f7609e27a3a70b9b2507bdf37c7dac.png

让我们来看看 startproject 命令创建的目录结构:

mysite/

manage.py

mysite/

__init__.py

settings.py

urls.py

wsgi.py

对上面这些文件的简要说明:

在 mysite/ 根目录上级仅仅是一个容器项目。对于Django它的名字随意,可以将其重命名为任何你喜欢的。

manage.py: 一个命令行工具,可以让您以各种方式与Django项目进行交互。你可以阅读所有关于manage.py 在 django-admin和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的目录,如果你有没有准备好,并运行以下命令:

C:\python27\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.

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浏览器访问:http://127.0.0.1:8000/。会看到一个“Welcome to Django”页面。这表示它安装成功了!

b863d6312ae8c0a56a78c871eff5cb78.png

默认情况下 runserver 命令启动就在内部IP开发服务器的端口 8000。

如果你想改变服务器的端口,将它作为命令行参数。例如,下面这个命令会在服务器8080端口运行:

$ python manage.py runserver 8080

如果想改变服务器的IP,传递给它端口。(如果你想暴露在其他计算机或网络上工作)所有公网IP听,使用以下方法:

$ python manage.py runserver 0.0.0.0:8000

创建Polls app

现在的“project” - 设置完毕后就开始可以工作了。

在Django写的每个应用程序包含一个Python包,遵循一定的约定。 Django提供了一个实用程序,自动生成一个应用程序的基本目录结构,这样就可以专注于写代码而不是建立目录。

应用程序可以在Python路径中的任何地方。在本教程中,我们将创建投票程序在 manage.py 文件同级目录中,以便它可以被导入作为自己的顶层模块,而不是 mysite 的一个子模块。

在创建应用程序前,确保你在 manage.py 同一个目录中并键入以下命令:

C:\python27\mysite>python manage.py startapp polls

这将创建一个目录polls,这是目录结构是这样的:

polls/

__init__.py

admin.py

apps.py

migrations/

__init__.py

models.py

tests.py

views.py

这个目录结构中的 poll 应用程序。

编写视图代码

现在我们来编写的第一个视图。打开文件polls/views.py,把下面的Python代码放入里面:

polls/views.py

fromdjango.httpimport HttpResponse defindex(request): return HttpResponse("Hello, world. You're at the polls index.")

这是 Django 最简单的视图。要调用这个视图还需要把它映射到一个URL - 对于这一点,我们需要 URL 配置。

要在polls 目录创建URL配置,创建一个名为 urls.py 文件,现在您的应用程序目录应该是这样的:

polls/

__init__.py

admin.py

apps.py

migrations/

__init__.py

models.py

tests.py

urls.py

views.py

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

polls/urls.py

fromdjango.conf.urlsimport url from.import views

urlpatterns = [

url(r'^$', views.index, name='index'),

]

下一步骤是让 polls.urls 模块指向该ROOT_URLCONF。在 mysite/urls.py 中, 增加导入 django.conf.urls.include 并插入 include() 在URL模式列表中,所以这里有:

mysite/urls.py

fromdjango.conf.urlsimport include, url fromdjango.contribimport admin

urlpatterns = [

url(r'^polls/', include('polls.urls')),

url(r'^admin/', admin.site.urls),

]

现在已经连接索引视图到URL配置。让我们来验证它结果,运行以下命令:

C:\Python27\mysite> python manage.py runserver

在浏览器中打开http://localhost:8000/polls/,应该看到如下文字显示: “Hello, world. You’re at the polls index.”, 在 index 视图中所定义。

d3496b59137087f7b15907dbfa662bb1.png

url()函数传递四个参数,两个必需的:regex 和 view,以及两个可选:kwargs 和 name。

url() 参数: regex

术语“regex”是一种常用的缩写形式,意思是“正则表达式”,这是一个语法字符串匹配模式,或在我们的示例中是URL模式。Django从第一个正则表达式开始,并使得其遍历列表,比对每一个正则表达式的请求的URL,直到它找到一个匹配。

请注意,这些正则表达式不搜索GET和POST参数,或者域名。例如,在一个请求https://www.example.com/myapp/, URLconf 会寻找myapp/.在一个请求 https://www.example.com/myapp/?page=3, URLconf 还将寻找 myapp/.

如果需要使用正则表达式的帮助,请参见维基百科的条目和 re模块的文档。 然而在实践中,你并不需要成为正则表达式的专家,因为只需要知道如何捕捉简单的模式。事实上,复杂的正则表达式可以查找性能较差,所以你可能不依赖于正则表达式的全部功能。

最后,一个关于性能的事项需要了解:这些正则表达式编译首次URL配置模块被加载。它们是超级的快(只要查找东西不是太复杂 - 如上所述)。

url() 参数: view

当 Django 找到正则表达式匹配,Django调用指定的视图函数,使用 HTTP 请求对象作为第一个参数,从正则表达式“捕获”的其他参数作为其它的值。 正则表达式使用简单的捕捉,值传递是通过位置参数;如果使用名为捕捉,值传递关键字参数。我们将给出一个例子。

url() 参数: kwargs

任意关键字参数可以通过在字典中的目标视图。在本教程我们不打算使用Django的这一特点。

url() argument: name

命名网址可以参考它,明确地从其他地方在Django - 尤其是模板。 这种强大的功能可让您进行全局更改到项目的URL模式,而只需要修改一个文件。接下来我们学习如何在 Django 使用数据功能。

快速入门系列教程:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值