IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 视图函数-基本用法 -> 正文阅读

[Python知识库]视图函数-基本用法

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

pycharm 打开一个新创建的view_func_demo项目
cmd 创建一个app
workon first
cd C:\Users\henan\Desktop\codes\view_func_demo>
python manage.py startupapp book # 创建一个app
pycharm app 为book的视图文件中创建一个视图函数

from django.http import  HttpResponse
# Create your views here.
def  book(request):
    return HttpResponse('图书首页')

在这里插入图片描述

再在项目的视图文件中添加app的视图函数与url 的映射:

from book import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('book/',views.book)
]

在这里插入图片描述
最后点击运行就可以获得如下效果

在这里插入图片描述
视图函数:

  • 1,视图函数的第一个参数必须是request, 这个参数绝对不能少。
  • 2,视图函数的返回值必须是 jdango.httpresponse.httpResponseBase 的子类的对象
    url 映射:
    1,为什么会去urls.py 文件中寻找映射呢?
    是因为在’settings.py ’ 文件中配置了’ROOT_URLCONF’为’urls.py’, 所以django会去urls.py 中寻找。
    2, 在urls.py 中我们所有的映射,都因该放在’urlpatterns’ 这个变量中。
    3, 所有的映射不是随便写的,而是使用’path’函数或者是’re_path’ 函数进行包装的。
    第十二节完
    第十三课时
    url中传递参数给视图函数
    有的时候,url 中包含有一些参数需要动态调整。比如简书某篇文章的详情页面的url, https://www.jianshu.com/p/b295bec5f55c 中 最后的b295bec5f55c就是这篇文章的id,那么简书的文章详情页面的url 就可以写成这样https://www.jianshu.com/p/, 其中id就是文章的id , 那么如何在django中实现这种需求呢,这个时候可以在path 函数中,使用尖括号的形式来定义一个参数。比如现在想要获取一本书籍的详细信息,就可以在url 中指定这个参数。示例代码如下:
# 定义的带参数的视图函数
from django.http import HttpResponse
def book_detail(request,book_id,category_id):
    # 可以从数据库中根据book_id 提取这个图书的信息。
    text = "您获取的图书id是:%s, 图书分类: %s " %(book_id,category_id)
    return  HttpResponse(text)`

在这里插入图片描述
url 映射

from django.http import HttpResponse
from book import views

urlpatterns = [
   path('admin/', admin.site.urls),
   path('',index),
   path('book/',views.book),
   path('book/detail/<book_id>/<category_id>/',views.book_detail) #跟上面定义的视图函数的url映射
]

在这里插入图片描述
最终的效果:
在这里插入图片描述
采用查询字符串的方式

#定义视图函数
def author_detail(request):
    author_id = request.GET.get('id')
    text = '作者的id是:%s' % author_id
    return HttpResponse(text)

在这里插入图片描述

关联到url 中:

from django.http import HttpResponse
from book import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('',index),
    path('book/',views.book),
    path('book/detail/<book_id>/<category_id>/',views.book_detail),
    path('book/author/',views.author_detail)          #  用于关联查询字符串的视图函数的url
]

在这里插入图片描述
url 传入参数:
1,采用在url 中使用变量的方式:在path的第一个参数中,使用’<参数名>'的方式可以传递参数。然后在视图函数中也要写一个参数,视图函数中的参数必须和url 中的参数名称保持一致,不然就找不到这个参数,另外,url 中可以传递多个参数。
2, 采用查询字符串的方式: 在url 中,不需要单独的匹配查询字符串的部分。只需要在视图函数中使用’request.GET.get(‘参数名称’)'的方式来获取,示例代码如上

url 在传参的时候可以指定参数的类型:

from django.http import HttpResponse
from book import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('',index),
    path('book/',views.book),
    path('book/detail/<book_id>/<category_id>/',views.book_detail),
    path('book/author/',views.author_detail),
    path('book/publisher/<int:publisher_id>/',views.publisher_detail)
]    #  定义传入参数为整数

在这里插入图片描述
在这里插入图片描述
第十四课时待续

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-18 17:35:34  更:2022-05-18 17:36:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 13:28:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码