django1.9学习之投票系统第一课时

创建你的第一个django应用

让我们通过例子学习。

通过本课时,我们将学会创建基本的投票系统应用。

由以下两部分组成:

  • 公开的站点以便用户查看投票列表和进行投票。
  • 一个管理端方便管理员对投票列表进行增,删,改,查等操作。

假设你的django已经安装好。你可以通过以下命令查看当前django的版本号:

$python -m django --version

如果django已经安装好,你应该能查看到你安装的django的版本号,如果没有,你将看到“No module named django”的错误提示。

本教程使用的环境是django1.9和Python3.4或更改。如果你的环境不是这样的你可以升级你的环境或者查看其他版本教程。

点击查看如何去除旧版本安装新版本。

创建项目

如果你点一次使用django,你将不得注意一些初始化方面的设置。也就是说你需要自动生成一些代码建立django项目--设置django实例的集合,包括数据库配置,应用设置等。

在命令行通过cd进入到你写代码的根目录然后输入如下命令:

django-admin startproject mysite

运行该命令后将会在当前目录创建mysite文件夹,如果没有创建mysite文件夹,点击查看问题。

让我们查看通过startproject命令创建的文件:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

各文件解释如下:


启动开发服务器

让我们测试django项目是否能正常运行。在终端通过cd命令进入到项目的根目录,也就是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.

July 08, 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.

你已经启动纯由Python写的轻量级的web服务器。

注意: 不要使用类似的方式启动服务器作为生产环境下面的服务器环境。仅仅作为开始时使用。

现在服务器已经启动好了。在浏览器中输入http://127.0.0.1:8000你将能在浏览器页面看到“Welcome to Django”的文字。


创建Polls投票应用

开发环境搭建好了,你就可以开始进行开发工作。

你编写的每个Django应用都是遵循特定约定且包含一个Python包。 Django自带一个工具,它可以自动生成应用的基本目录结构,这样你就能专心于书写代码而不是创建目录。


你的应用可以放在Python目录下的任何位置。在本教程中,我们创建投票应用当作项目根目录下面

创建你的应用,确保在当前目录有一个manage.py文件并且输入以下命令:

python manage.py startapp polls

敲回车后就能创建polls目录,目录结构如下:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

这个目录结构就是poll投票应用的房子,即所有poll代码在该目录下完成。

创建第一个view文件

打开polls/views.py文件,输入以下Python代码:

polls/views.py
from django.http import HttpResponse


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

这或许是django框架中最简单的view代码。为了调用这个index方法,我们需要做url映射。配置url文件。

在polls应用中创建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
from django.conf.urls import url

from . import views

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

下一步是将polls.urls模块配置到顶级url配置温江中。在mysite/urls.py,将django.confi.urls.include导入到文件中,在url模式列表中假如include()方法。代码如下:

mysite/urls.py
from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
]

include()函数能调用其他应用的url配置文件。注意:在include()函数中没有$符号而且以斜线结尾的。无论何时django遇到include()函数后都会将前一部分截取掉将后面一部分传给导入进的应用的url配置文件。

你已经将polls的view配置到了根url中,让我们验证是否配置成功。输入如下命令测试:

Python manage.py runserver
在浏览器中输入http://127.0.0.1:8000/polls/,你将能看到“Hello, world. You're at the polls index.”。说明你在view中定义的index方法已生效。

运行截图:

url()方法有四个参数,其中两个是必须的,regex和view,其余两个是可选的:kwargs和name。下面有关四个参数的详细描述:

url()参数: regex

regex就是我们通常意义上的正则表达式,即通过正则匹配将ulr和view中的具体方法进行映射。

注意正则表达式不会匹配GET或POST后面的参数。例如一个url为:https://www.example.com/myapp/。URLconf将会搜索myapp/,另一个url为:https://www.example.com/myapp/?page=3同样URLconf会搜索myapp/.


url参数:view

当django通过正则表达式匹配好url,django将会调用对应view下的方法。HttpRequest作为传入的第一个参数。

url参数:kwargs

任意的关键字都能通过字典的形式传给目标view。本教程中不会涉及到这方面的特性。

url参数:name

在django中通过url的名字能引用任何位置应用。这种特性方便你做全局url的更改。仅仅需要改动一小部分。


翻译有问题的地方请大家指出

本教程代码:https://github.com/yuanlunchuan/django-study.git

英文文档原文:https://docs.djangoproject.com/en/1.9/intro/tutorial01/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值