django视图层

View视图层设计


编写hello world

接下来在blogpost目录下的views.py 模块中编写视图函数:

from django.shortcuts import render

from django.http import HttpResponse

def index(request):
    return HttpResponse('Hello, Django!')

要调用视图函数index 我们需要映射到一个url,我们在blogpost目录下添加urls.py 模块,如下:
这里写图片描述
blogpost/urls.py 中加入如下语句:

from django.conf.urls import url
from . import views

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

下一步将URLconf指向blog/urls.py 模块,打开blog目录下的urls.py文件:
这里写图片描述

加入如下语句:

from django.conf.urls import url, include
   from django.contrib import admin

② urlpatterns = [
     url(r'^admin/', admin.site.urls),
③   url(r'^blog/', include('blogpost.urls'),
]

① 导入为项目和网站管理的URL函数和模块;
② 变量urlpatterns 定义了应用程序中的URL;
admin.site.urls 模块定义了管理网站中请求的URL,include('blog.urls') 定义了Blog网站中请求的URL。

现在我们在浏览器输入地址http://127.0.0.1:8000/blog/,页面显示:

这里写图片描述

我们来分析django是如何完成这一过程的。首先用户通过浏览器输入一个URL地址,也就是向服务器发送一个HTTP请求。django通过urls.py 模块的url函数的第一个参数(正则)匹配相应的url() ,接着url函数的第二参数映射到需要调用视图函数views.index 。django继续从views.py 模块中调用index() 函数,request 参数是django封装好的HTTP请求,HttpResponse 函数类似python的print函数,最后将我们编写好的内容以网页的形式返回给用户。

编写真正的视图函数

views.py 模块中加入如下代码:

from django.shortcuts import render

from django.http import HttpResponse

from .models import Blog

def index(request):
    post = Blog.objects.all()[0]
    return HttpResponse(post.content)

再次打开浏览器输入http://127.0.0.1:8000/blog/

这里写图片描述

页面显示了我们数据库中的内容。django的视图函数做两件事,返回包含所请求页面的HttpResponse 对象,或引发Http404异常等。
index() 函数从数据库中获取一篇文章对象,引用post指向该对象,随后HttpResponse 对象将包含的文章信息返回给浏览器。
但这有一个问题,我们将网页硬编码到视图函数中,将来需要修改时将会很麻烦,因此,我们需要用到django的模板系统,使用模板系统可以将设计与逻辑分离开来。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值