全栈工程师-后端开发-Django_Django视图函数与请求响应.docx

全栈工程师-后端开发-Django_Django视图函数与请求响应.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE1

PAGE1

Django视图函数基础

1视图函数的概念与作用

在Django框架中,视图函数(或称为视图)是处理HTTP请求并返回HTTP响应的核心组件。它定义了应用程序的业务逻辑,接收用户请求,处理数据,然后将结果返回给用户。视图函数是连接模型(数据)和模板(展示)的桥梁,确保数据的正确处理和展示。

2创建第一个视图函数

让我们通过创建一个简单的视图函数来理解其工作原理。假设我们有一个博客应用,需要显示所有文章的列表。

#在应用的views.py文件中

fromdjango.httpimportHttpResponse

fromdjango.shortcutsimportrender

from.modelsimportArticle

defarticle_list(request):

显示所有文章的列表

articles=Article.objects.all()#从数据库获取所有文章

returnrender(request,articles/article_list.html,{articles:articles})

在这个例子中,article_list函数接收一个request参数,从数据库中获取所有文章,然后使用render函数将这些文章渲染到article_list.html模板中,最后返回渲染后的HTML内容。

3视图函数的参数详解

3.1request参数

request对象包含了所有HTTP请求的信息,如请求方法(GET,POST等)、请求头、请求体、用户会话信息等。它是Django视图函数的第一个参数,必须包含。

defarticle_list(request):

ifrequest.method==GET:

articles=Article.objects.all()

returnrender(request,articles/article_list.html,{articles:articles})

else:

returnHttpResponse(MethodNotAllowed,status=405)

在上面的代码中,我们检查了请求方法是否为GET,如果不是,则返回一个HTTP405错误。

3.2其他参数

视图函数可以接收其他参数,这些参数通常是从URL中捕获的,用于处理特定的请求。

defarticle_detail(request,article_id):

显示特定文章的详细信息

article=Article.objects.get(id=article_id)

returnrender(request,articles/article_detail.html,{article:article})

在这个例子中,article_id是从URL中捕获的参数,用于从数据库中获取特定文章的详细信息。

4视图函数的返回值

视图函数的返回值通常是HttpResponse对象,它包含了要发送给客户端的HTTP响应。Django提供了多种HttpResponse的子类,如HttpResponseRedirect、JsonResponse等,以适应不同的响应需求。

4.1返回HTML

defarticle_list(request):

articles=Article.objects.all()

returnrender(request,articles/article_list.html,{articles:articles})

这里,render函数返回一个渲染后的HTML页面。

4.2返回重定向

fromdjango.httpimportHttpResponseRedirect

fromdjango.urlsimportreverse

defarticle_create(request):

ifrequest.method==POST:

#处理表单数据,创建文章

article=Article.objects.create(title=request.POST[title],content=request.POST[content])

returnHttpResponseRedirect(reverse(article_detail,args=(article.id,)))

else:

您可能关注的文档

文档评论(0)

kkzhujl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档