【Django篇】--动手实践Django基础知识

news/2024/12/24 8:06:35/

一、url视图映射

        在url.py中定义两个视图函数,并添加到urlpatterns中用于访问。

from django.contrib import admin
from django.urls import path
from django.shortcuts import HttpResponse# 默认的地址为:http://127.0.0.1:8000/# 如果我想要访问默认地址下的其他内容,可以通过定义视图并将视图进行映射
def index(request):return HttpResponse("这是默认页面")def my_page(request):return HttpResponse("我的第一个Django项目,我们一定会顺利毕业滴!")urlpatterns = [path("admin/", admin.site.urls),path("", index), # 双引号中为空内容,表示为默认地址path("mypage", my_page)  # 自定义url
]

        运行后的结果显示:

        在Django项目中,如果你希望在开发过程中随时看到代码更改的效果,可以通过设置DEBUGTEMPLATES配置来实现,具体如下:

1、设置DEBUG为True: 在settings.py文件中,将DEBUG设置为True。这样可以确保Django在开发过程中提供详细的错误页面,并且每次代码更改后,页面都会自动刷新以显示最新的代码效果。

# settings.pyDEBUG = True

2、设置模板的AUTO_RELOAD: 在settings.py文件中,确保TEMPLATES配置中的OPTIONS字典包含了'debug': True,这样可以在开发服务器运行时自动检测模板文件的更改。

# settings.pyTEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [],'APP_DIRS': True,'OPTIONS': {'context_processors': [...],'debug': True,  # 确保这一行被设置为True},},
]

二、URL传参

2.1、字符串查询传参

        在book/view.py中添加视图:

from django.shortcuts import render,HttpResponse# 在url中携带参数
# 1、通过查询字符串(query string) :http://127.0.0.1:8000/book?id=1
# 2、在path中携带:http://127.0.0.1:8000/book/2def book_detail_query_id(request):book_id = request.GET.get('id')book_name = request.GET.get('name')return HttpResponse(f"我们要查找的图书id是:{book_id},图书名称为:{book_name}")

        在url.py中进行视图映射:

from django.contrib import admin
from django.urls import path
from django.shortcuts import HttpResponse
from book import views
# 默认的地址为:http://127.0.0.1:8000/# 如果我想要访问默认地址下的其他内容,可以通过定义视图并将视图进行映射
def index(request):return HttpResponse("这是默认页面")def my_page(request):return HttpResponse("我的第一个Django项目,我们一定会顺利毕业滴!")urlpatterns = [path("admin/", admin.site.urls),path("", index), # 双引号中为空内容,表示为默认地址path("mypage", my_page),  # 自定义urlpath("book", views.book_detail_query_id)
]

        结果显示:

 2.2、path路径传参

        在book/view.py中添加视图:

from django.shortcuts import render,HttpResponse# 在url中携带参数
# 1、通过查询字符串(query string) :http://127.0.0.1:8000/book?id=1def book_detail_query_id(request):book_id = request.GET.get('id')book_name = request.GET.get('name')return HttpResponse(f"我们要查找的图书id是:{book_id},图书名称为:{book_name}")# 2、在path中携带:http://127.0.0.1:8000/book/2
def book_detail_path(request,book_id):return HttpResponse(f"您要查找的图书id是:{book_id}")

         在url.py中进行视图映射:

from django.contrib import admin
from django.urls import path
from django.shortcuts import HttpResponse
from book import views
# 默认的地址为:http://127.0.0.1:8000/# 如果我想要访问默认地址下的其他内容,可以通过定义视图并将视图进行映射
def index(request):return HttpResponse("这是默认页面")def my_page(request):return HttpResponse("我的第一个Django项目,我们一定会顺利毕业滴!")urlpatterns = [path("admin/", admin.site.urls),path("", index), # 双引号中为空内容,表示为默认地址path("mypage", my_page),  # 自定义urlpath("book", views.book_detail_query_id),# 在book_id前面添加指定参数类型,如果在浏览器中输入了非整型,会报404错误,并且在视图函数中,book_id就是一个整型,否则是字符串类型path("book/<int:book_id>", views.book_detail_path)]

        结果显示:

2.3、path函数

        path函数的定义是:path(route,view,name=None,kwargs=None)。

  1. route参数:以下是几种常用的类型:  
    • int:匹配任意的零或者正数的整型。到视图函数中就是一个int类型。
    • slug:由英文中的横杠-,或者下划线_连接英文字符或者数字而成的字符串。
    •  uuid:匹配uuid字符串
    •  path:匹配非空的英文字符串,可以包含斜杠/。
    • str:非空的字符串类型。默认的转换器。但是不能包含斜杠。
  2. view参数:可以为一个视图函数或者类视图.as_view()或者是django.urls.include()函数的返回值。
  3. name参数:这个参数是给这个url取个名字的,这在项目比较大,url比较多的时候用处很大。

http://www.ppmy.cn/news/1557686.html

相关文章

Java 8使用Stream流去除一个list中包含另一个list已存在的某个字段的对象

项目场景&#xff1a; 在Java中&#xff0c;我们经常会遇到需要对List中的数据进行操作的情况。有时候&#xff0c;我们需要从一个List中删除另一个List已经包含的数据。这种情况下&#xff0c;我们可以使用Java Stream来简洁高效地完成操作。 代码示例 假设我们有两个对象列表…

CentOS7网络配置,解决不能联网、ping不通外网、主机的问题

1. 重置 关闭Centos系统 编辑->虚拟网络编辑器 还原默认设置 2. 记录基本信息 查看网关地址,并记录在小本本上 查看网段,记录下 3. 修改网卡配置 启动Centos系统 非root用户,切换root su root查看Mac地址 ifconfig 或 ip addr记录下来 修改配置文件 vim /et…

【IMU:视觉惯性SLAM系统】

视觉惯性SLAM系统简介 相机&#xff08;单目/双目/RGBD)与IMU结合起来就是视觉惯性&#xff0c;通常以单目/双目IMU为主。 IMU里面有个小芯片可以测量角速度与加速度&#xff0c;可分为6轴(6个自由度)和9轴&#xff08;9个自由度&#xff09;IMU&#xff0c;具体的关于IMU的介…

使用C++调用YOLOv8模型的一般步骤

文章目录 一、准备工作二、创建C++项目并配置环境三、代码实现四、注意事项一、准备工作 安装依赖库 首先需要安装OpenCV库,用于图像的读取、处理等操作。OpenCV的安装方式因操作系统而异,例如在Ubuntu系统中,可以通过以下命令安装:sudo apt-get install libopencv-dev在Wi…

短视频矩阵源码开发部署全解析

矩阵源码部署开发的专业注意事项 应用场景概述 在开发和构建抖音矩阵系统、短视频矩阵号系统或抖音SEO矩阵系统等应用时&#xff0c;需关注以下关键细节。 视频上传与处理 对于短视频矩阵&#xff0c;必须实现视频的上传与处理模块。视频上传环节涉及文件存储及传输问题&…

ChatGPT生成接口文档实践案例(一)

生成接口文档的方法有很多&#xff0c;如研发人员手工编写或通过Swagger、Postman、Apiary、ChatGPT自动生成。在此仅针对利用ChatGPT生成接口文档的方法进行介绍&#xff0c;其他两种方法不赘述。 以飞机订票系统的用户注册功能为例&#xff0c;其用户注册的界面如图5-9所示。…

Zabbix6.0升级为6.4

为了体验一些新的功能&#xff0c;比如 Webhook 和问题抑制等&#xff0c;升级个小版本。 一、环境信息 1. 版本要求 一定要事先查看官方文档&#xff0c;确认组件要求的版本&#xff0c;否则版本过高或者过低都会出现问题。 2. 升级前后信息 环境升级前升级后操作系统CentOS…

redis 缓存使用

工具类 package org.springblade.questionnaire.redis;import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factor…