当前位置: 首页 > article >正文

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

一、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.py

DEBUG = True

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

# settings.py

TEMPLATES = [
    {
        '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/2


def 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),  # 自定义url
    path("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=1

def 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),  # 自定义url
    path("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.kler.cn/a/454304.html

相关文章:

  • Pytorch文件夹结构
  • Python基础语法知识——列表、字典、元组与集合
  • 【前沿 热点 顶会】AAAI 2025中与目标检测有关的论文
  • MySql详细教程-从入门到进阶(超实用)
  • 解锁高效密码:适当休息,让学习状态满格
  • cad学习 day7-9
  • 《Go 语言变量》
  • C语言学习笔记(1)
  • 游戏引擎学习第62天
  • Maven核心概念总结
  • Blender高效优化工作流程快捷小功能插件 Haggis Tools V1.1.5
  • jvm排查问题-实践追踪问题 与思路--堆内堆外内存泄漏排查方针
  • HarmonyOS NEXT 实战之元服务:静态案例效果---咖啡制作实况窗
  • css
  • 随时随地编码,高效算法学习工具—E时代IDE
  • PDF书籍《手写调用链监控APM系统-Java版》第10章 插件与链路的结合:SpringBoot环境插件获取应用名
  • Uniapp 微信小程序检测新版本并更新
  • 数据分析的常见问题及解决方案
  • 安全合规遇 AI 强援:深度驱动行业发展新引擎 | 倍孜网络CEO聂子尧出席ICT深度观察报告会!
  • C++-----------映射
  • Java Spring Boot 项目中嵌入前端静态资源:完整教程与实战案例
  • 模板方法、观察者模式、策略模式
  • Security知识点分享之高级安全安装虚拟机
  • 电商数据的安全与隐私保护:API接口的角色
  • 开源代码寻找平台总结
  • 【数据结构】【线性表】栈在算术表达式中的应用