Django 开发第一个视图

Django 开发第一个视图,Django的视图是负责页面展示的重要模块,用于处理网站业务逻辑。
打开polls/view.py文件,添加以下代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Author : www.coolcou.com

from django.http import HttpResponse

def index(request):
    return HttpResponse("你好! 这是酷客教程在线投票系统。")

这样,一个最简单的Django视图已经创建完成。为了能够访问它,需要在URL中添加路由映射。在polls中创建文件urls.py,并在urls.py文件中添加以下内容:

#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Author : www.coolcou.com

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

提示
Path()方法可以接收4个参数,其中两个必选参数:route和view,另外两个是可选参数:kwargs和name。
接下来需要在根目录的urls.py中引用polls/urls.py,修改mysite/urls.py如下:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

上面代码中include()方法可以用来引用其他URLconfs (urls.py)。通过合理使用include()方法可以将整个网站中的所有URL分配到多个文件中,使代码更加简洁合理。

提示
除了admin.site.urls之外,在任何时候都应该使用include()方法引用其他路由模块。

到目前为止,我们的Django工程中已经包含了一个视图。重新调用runserver命令启动Web服务,查看该视图是否能够正常工作。

在浏览器中输入“http://127.0.0.1:8000/polls/”,按Enter键,显示效果如图所示。
Django 开发第一个视图

Django 2.0与Django 1.11的区别

在Django 1.11中使用url()方法创建URL映射,url()方法接收4个参数:

  • regex
    regex是正则表达式(regular expression)的简写,用于匹配字符串。Django将接收到的URL按照url pattern在urlpatterns中的顺写进行比较,直到找到第一个匹配的地址。
    注意以上正则表达式不会比较GET或POST参数,也不会比较网站服务器名。例如对于请求https://www.example.com/myapp/,URLconf只会匹配myapp/,而对于请求https://www.example.com/myapp/?page=3也只会匹配myapp/。
    由于以上正则表达式在URLconf第一次被加载时就会被编译完成,因此URLconf的正则表达式执行速度很快。

  • view
    当Django找到了匹配的正则表达式后,Django会将一个HttpRequest对象作为第一个参数、其他正则表达式捕捉到的值作为第二个参数传递给指定的视图。如果正则表达式只进行简单捕捉的话,那么捕捉到的值将会作为位置参数进行传递;如果正则表达式按照名字捕捉值的话,那么捕捉到的值将会作为关键字参数进行传递。

  • kwargs
    任何关键字参数都会作为字典传递给目标视图。

  • name
    为URL进行命名,方便在Django项目的其他位置使用名字来引用URL。

注意
在Django 2.0中使用path()方法创建URL映射,path()方法同样接收4个参数:route、view、kwargs、name,除route参数外,其他3个参数的工作方式与Django 1.11中url()方法的参数相似。route是一个包含URL模式的字符串,其工作方式与Django 1.11中url()方法的regex相似,最主要的区别是route所使用的URL模式字符串可以指定参数类型。

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!