Django--视图介绍(1)

本文详细介绍了在Django框架中如何定义视图函数及与URL的映射关系,包括视图函数的基本定义、视图与HTTP请求响应的交互过程,以及三种配置URL的方法,适用于基于函数和类的视图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在web站点上许多操作都需要与后端交互,此时需要发起一个 Http请求,并等待后端服务返回一个Http响应。在Django中涉及两个相关概念:URL和视图。每一个请求对应一个URL,URL映射到具体的视图函数(类),传递HttpRequest,视图处理之后返回HttpResponse。

定义视图

每个视图都回接收一个请求,对请求进行自定义处理,最后返回一个响应,这就是视图完整定义需要的操作。

对于规范的项目,视图置于应用或项目的views.py文件中。
在新创建的应用目录下进入view.py文件,在文件中定义第一个视图函数:

from django.http import HttpResponse

def hello_django_bbs(request):
 	html="<h1>hello Django BBS</h1>"
 	return HttpResponse(html)

上述四句话指的是:

  • 引入HttpResponse,作为视图的返回类型
  • 视图函数声明,函数名为hello_django_bbs,视图的第一个参数是HttpRequest类型的对象,通常定义为request
  • 函数内部定义业务处理逻辑,此处简单定义了视图的响应内容
  • 视图最后返回一个HttpResponse对象,标识一次web请求的结束

URL到视图的映射

URL和视图是一一映射的关系。每一个请求对应一个URL,URL对应视图函数(类)。
在视图写完之后,我们可以将当前视图与一个URL进行映射

from django.urls import path
from **(应用名) import path
urlpatterns ={
	path('**应用名/hello/',views.hello_django_bbs)
	}
 

此时,在浏览器中输入http://127.0.0.1:8000/**/hello即可将定义的html界面打印出来

Django三种定义URL配置的方法

  • 针对基于函数的视图

将视图定义文件引入(import),利用path定义视图与URL的对应关系,如上hello代码,当前path函数传递了两个参数,第一个参数定义了URL的匹配规则,第二个参数定义了映射的视图函数,这两个参数是必填项

  • 针对基于类的视图

首先将视图类对象引入,然后用类似的方法配置URL与视图的对应关系,实例如下:

  from other_app.views import home
  path(' ',Home.as_view(),name='home')
  • 第三种,针对项目中存在多APP的场景
    利用include实现App与项目的解耦。include将App的URL配置文件导入,之后实现根据不同的App来分发请求,实现每个App自己管理自己的视图与URL映射,配置管理App模式
  from django.urls import include,path
  path('blog/',include('blog.urls')

例如在项目的post应用下创建urls.py文件(PS这是post应用的URL配置文件,假设项目名my_bbs,则配置文件路径为my_bbs/post/urls.py,在项目的urls.py中也要引入),具体内容如下:

from django.urls import path
from post import views

urlpatterns={
	path('hello/',views.hello_django_bbs)
	}

同时修改项目的urls.py文件内容

urlpatterns={
	path('admin/',admin.site.urls),
	path('post/',inlcude(post.urls'))
	/*以post开头的请求交给post应用的URL配置去处理*/
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值