美文网首页
Django视图定义,URL映射

Django视图定义,URL映射

作者: 达闻西_ | 来源:发表于2020-03-25 12:44 被阅读0次

视图

一般写在app的views.py中,并且视图的第一参数永远都是request(一个HttpRequest对象),这个对象存储了请求过来的所有信息,包括携带的参数,以及一些头部信息。在视图中一般是完成逻辑相关的操作,比如请求添加一篇博客,那么可以通过request来接收这些数据,然后存储到数据库中,最后把执行结果返回给浏览器,返回必须是httpResponseBase对象或者子类的对象

from django.http import HttpResponse

def book_list(request):
    return HttpResponse("书籍列表")
# urls.py
path('book/', views.book_list)

视图函数

  • 第一个参数必须是request,不能少
  • 返回值必须是django.http.response.httpResponseBase的子类的对象

URL映射

  • 为什么会去urls.py中寻找映射呢?
    • 是因为在settings.py中配置了ROOT_URLCONF为urls.py,所以django会去urls.py中寻找
  • 在urls.py中所有映射,都应该在urlpatterns这个变量中
  • 所有映射不是随便写,而是使用path函数或者re_path函数进行包装的
# URL中添加参数
from book import views

def index(request):
    return HttpResponse("图书首页")

path('', index) # 首页
path('book/<book_id>', vies.book_detail) 
path('book', views.book)
python manage.py startapp book
# views.py
from django.http import HttpResponse

def book(request):
    return HttpResponse("图书首页")

def book_detail(request, book_id):
    # 可以从数据库中提取book_id这个图书的信息
    text = "您图书的id是 %s" % book_id
    return HttpResponse(text)

URL传参数

  • 采用在url中使用变量的方式,在path的第一个参数中,使用<参数名>的方式可以传递参数,然后在视图函数中也要写一个参数,视图函数中的参数必须和url中的参数名称保持一致,不然就找不到这个参数,另外,url可以传递多个参数。

  • 采用查询字符串的形式,不需要单独匹配查询字符串部分,只要在视图函数中使用request.GET.get方法

path('book/author/', views.author_detail)
def author_detail(request):
    author_id = request.GET.get('id')
    text = "作者的id是: %s" % author_id
    return HttpResponse(text)

127.0.0.1:8000/book/author/?id=1

因为查询字符串使用的是GET请求,所以我们通过request.GET来获取参数,并且因为GET是一个类似于字典的数据类型,所以取值和字典的方式一样

相关文章

  • Django视图定义,URL映射

    视图 一般写在app的views.py中,并且视图的第一参数永远都是request(一个HttpRequest对象...

  • Django基础5--主页及模板

    1. 创建主页 使用Django创建网页的过程通常分三个阶段:定义URL、编写视图和编写模板 每个URL都被映射到...

  • Django初体验

    Django 中的重要概念 urls.py拦截url,映射到视图函数 视图 views存放函数的地方。分析requ...

  • URL与视图函数的映射

    今天跟大家讲的是URL与视图函数的映射 URL与视图函数的映射 url与视图函数的映射是通过@app.route(...

  • Django路由层

    路由控制机制介绍它的本质是URL与要为该URL调用的视图函数之间的映射表;你就是以这种方式告诉Django,当客户...

  • 06-Django视图

    一、视图概述 Django用视图这个概念封装处理用户请求并返回响应的逻辑。定义视图函数相关的URL(网址) (即规...

  • 06-Django视图

    一、视图概述 Django用视图这个概念封装处理用户请求并返回响应的逻辑。定义视图函数相关的URL(网址) (即规...

  • 06-Django视图

    一、视图概述 Django用视图这个概念封装处理用户请求并返回响应的逻辑。定义视图函数相关的URL(网址) (即规...

  • 06-Django视图

    一、视图概述 Django用视图这个概念封装处理用户请求并返回响应的逻辑。定义视图函数相关的URL(网址) (即规...

  • Django框架中创建视图函数和APP(五)

    一、在Django框架中创建视图函数 在项目主目录下创建views.py的函数。 定义视图对应的URL。 服务启动...

网友评论

      本文标题:Django视图定义,URL映射

      本文链接:https://www.haomeiwen.com/subject/kkmtuhtx.html