Python 全栈体系【三阶】(一)

news2024/11/26 8:39:06

三阶:Django - Redis - Ajax

第一章 Django

一、Django 基础

1. 基础

Django是一个开源的、重量级的WEB开发框架。

Django的官网: https://www.djangoproject.com

2. 安装与卸载 Django

Django目前最新的版本为4.2,教学环境使用3.2

2.1 在线安装
sudo pip3 install django==版本号

说明:上述命令中版本号可以省略,如果省略的话,则安装最新的版本。

2.2 离线安装
tar -zxvf Django-3.2.20.tar.gz
cd Django-3.2.20
sudo python3 setup.py install
2.3 查看Django版本
python3 -m django --version
2.4 卸载Django
sudo pip3 uninstall django

二、创建项目

1. 创建项目

Django中创建项目分为以下三步:

第一步:创建项目,其命令如下:

django-admin startproject helloDjango

其中:

  • django-adminDjango的命令行管理工具,用于对Django项目执行某些命令操作。
  • helloDjango是项目的名称,只要为合法的名称即可。

第二步:启动项目,命令如下:

# 切换到项目目录内
cd helloDjango

#运行项目
python3 manage.py runserver

第三步:访问项目

启动浏览器,然后在地址栏输入http://127.0.0.1:8000

2. Django项目的目录结构

创建Django项目后,其目录结构如下:

helloDjango/
├── db.sqlite3
├── helloDjango
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

这些目录和文件的作用是:

  • 最外层的helloDjango目录是项目的根目录,也是项目的容器

  • manage.py是一个管理Django项目的命令行工具,其基本用法是:

    python3 manage.py subcommand
    

    subcommand包括:

    • runserver [addport],启动用于开发的轻量级的WEB服务器

    常用的端口号:

    http协议 80

    MySQL的端口号 3306

    FTP协议 21

    • startapp ,在当前目录或指定目录中创建应用
  • 内层的helloDjango目录包含项目文件,它是一个纯Python包。

  • helloDjango/settings.pyDjango项目的配置文件

  • helloDjango/urls.pyURL调度器(也称为路由配置文件)

  • helloDjango/wsgi.py,运行在WSGI兼容的WEB服务器上的入口

3. Django配置

Django的配置信息存储在settings.py文件中。

# 当前项目的绝对路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# 密钥
SECRET_KEY = 'd!9((sy&ge3!=u0zc$u_#ba@ok1=%2pg+xnws2=t+c@s_7-(6c'

# 是否开启调试模式,建议:在开发环境开启调试模式,生产环境关闭
DEBUG = True

# 已安装并启用的应用程序(Application)列表
INSTALLED_APPS = [ ]

# 已安装的中间件(Middleware)列表
MIDDLEWARE = []

# 根 URL 调度器的完整路径
ROOT_URLCONF = `helloDjango.urls`

# 模板的配置
TEMPLATES = []

# 数据库配置
DATABASES = []

# 语言代码
LANGUAGE_CODE = 'zh-Hans'

# 时区
TIME_ZONE = 'Asia/Shanghai'

三、URL调度器/URL路由

为了给一个应用程序设计URL,需要创建一个Python模块,通常被称为URLConf( URL configuration,URL配置)。其作用是包含 URL 模式到Python函数(称为视图函数)的映射关系。

URL路由三部曲:

第一步:先在urls.py中定义路由,并且指定视图函数

第二步:定义路由需要访问的Python函数(视图函数)

第三步:通过浏览器进行访问

在这里插入图片描述

HttpResponse对象位于django.http模块内

from django.http import HttpResponse

urls.py的代码如下:

from django.contrib import admin
from django.urls import path

from django.http import HttpResponse

def hello(request):
    return HttpResponse('<h1>Hello呀</h1>')

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

此时即可以通过http://127.0.0.1:8000/hello进行访问

1. path()函数

path() 函数的作用是返回一个元素,以便包含在urlpatterns中,该函数位于django.urls模块内,其语法结构是:

path(route,view,kwargs=None,name=None)
  • route 参数是一个匹配URL规则的字符串,当Django在处理请求时,它会从urlpatterns的第一项开始,按顺序依次匹配列表中的项,直到找到为止。匹配的原则是:匹配即停止

  • view参数是一个视图函数的名称,视图函数用于处理用户的请求,并且返回响应。该视图函数必须将HttpRequest对象作为第一个参数,参数建议以request命名,其语法结构是:

    def view_function_name(request[,argument[,...]]):
        ...
        ...
    

    说明:

    • request代表HTTP请求对象
    • argument代表可选参数,表示的的是从URL中传递的参数
  • kwargs代表向模板传递的参数,必须在字典(dict)

  • name代表为url命名,以便Django在任意地方可以唯一引用它

2. 路径转换器

Django中的路径转换器用于捕获URL模式中特定部分的值,并将其作为参数传递给视图函数。路径转换器包括以下几种:

在这里插入图片描述

在这里插入图片描述

  • 整数,匹配0及其他正整数,返回int

    <int:parameter_name>,如:

    # urls.py中的代码
    
    def article(request,id):
        return HttpResponse('文章详情')
    
    urlpatterns = [
        path('article/<int:id>',article)
    ]
    
  • 字符串,匹配除了/之外的任何非空字符串,直到遇到下一个斜线为止

    <str:parameter_name>,如:

    def user(request,username):
        return HttpResponse(f"username is: {username}")
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('user/<str:username>',user),
    ]
    
  • 路径,匹配非空字符串,包括路径分隔符(/)

    <path:parameter_name>,如:

    def detail(request,path):
        return HttpResponse(f"path is: {path}")
    
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('detail/<path:path>',detail),
    ]
    
  • uuid,匹配UUID格式的字符串,其格式为8-4-4-4-12

    <uuid:parameter_name>,如:

    def uuid(request,id):
        return HttpResponse(f"uuid is: {id}")
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('book/<uuid:id>',uuid)
    ]
    
  • slug,匹配任何的ASCII字母,数字、短横线及下划线,

    <slug:parameter_name>

3. URL调度器/URL路由的工作流程

在这里插入图片描述

强烈建议:所有的视图函数存储在views.py文件内。

四、总结1

1. 什么是Django的路由系统?

Django中的路由系统是一个将 URL 模式到Python函数(称为视图函数)的映射关系的机制。

2. 路由系统中有哪些路径转换器?

<int:pararameter_name>

<str:paramenter_name>

<uuid:parameter_name>

<path:parameter_name>

<slug:parameter_name>

3. 路由系统中如何传递参数?

路由系统中通过路径转换器传递参数,需要强调的是:在视图函数中也必须存在同名的参数,以接收路径转换器传递来的参数。

urlpatterns = [
    path('user/<int:id>/name/<str:name>',userinfo)
]

对应的视图函数则需要书写成:

from django.http import HttpResponse

def userinfo(request,id,name):
    ...
    ...

所有的视图函数必须将HttpRequest对象作为第一个参数传递;

所有的视图函数都必须返回HttpResponse(HTTP响应),该对象的构造函数结构是:

HttpResponse(content=b'',content_type=None,status=200)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1871997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

libctk shared library的设计及编码实践记录

一、引言 1.1 <libctk>的由来 1.2 <libctk>的设计理论依据 1.3 <libctk>的设计理念 二、<libctk>的依赖库 三、<libctk>的目录说明 四、<libctk>的功能模块及使用实例说明 4.1 日志模块 4.2 mysql client模块 4.3 ftp client模块 4…

【Python】已解决:(SqlServer报错)SQL错误(208):对象名‘string_split’无效

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决&#xff1a;&#xff08;SqlServer报错&#xff09;SQL错误&#xff08;208&#xff09;&#xff1a;对象名‘string_split’无效 一、分析问题背景 在使用Python连接SqlSe…

移动UI:我的界面,竟然有这么设计方式,而且个个都简洁美观。

移动应用中的个人中心页面通常包含以下内容&#xff1a; 1. 用户头像和昵称&#xff1a;展示用户的头像和昵称&#xff0c;用于个人身份的展示和识别。 2. 个人资料&#xff1a;展示用户的个人信息&#xff0c;如姓名、性别、生日、联系方式等。用户可以在这里查看和编辑自己…

增量模型:软件开发中的渐进式进步

目录 前言1. 什么是增量模型1.1 增量模型的工作原理1.2 增量模型与其他开发模型的对比 2. 增量模型的优势2.1 早期交付与用户反馈2.2 降低风险2.3 提高开发效率2.4 改进的项目管理 3. 增量模型的应用场景3.1 需求不明确的项目3.2 大型复杂项目3.3 有明确阶段性目标的项目 4. 增…

如何在LabVIEW中使用FPGA模块

LabVIEW FPGA模块是NI公司推出的一款强大工具&#xff0c;它允许用户使用LabVIEW图形化编程环境来开发FPGA&#xff08;现场可编程门阵列&#xff09;应用程序。与传统的HDL&#xff08;硬件描述语言&#xff09;编程相比&#xff0c;LabVIEW FPGA模块大大简化了FPGA开发的过程…

高效利用iCloud指南:打造无缝连接的数字生活

iCloud是苹果公司推出的一项云存储和云计算服务&#xff0c;它为用户提供了一个安全、便捷的云端存储空间&#xff0c;帮助用户在各个苹果设备之间无缝同步数据。无论是照片、文档、备忘录&#xff0c;还是应用程序数据&#xff0c;iCloud都能让你的数字生活更加高效和有序。本…

ECharts 源码代码规范

代码规范 - Apache EChartsApache ECharts&#xff0c;一款基于JavaScript的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。https://echarts.apache.org/zh/coding-standard.html 源文件 [强制] JavaScr…

9. Revit API UI: UIView、UIDocument、框选聚焦

9. Revit API UI: UIView、UIDocument、框选聚焦 UI命名空间下的API&#xff0c;到这里差不多就押送讲完了&#xff0c;同Application那篇所讲的几个类与接口&#xff0c;都是带UI的对应了一个不带UI的&#xff0c;如UIApplication和Application&#xff0c;作用呢&#xff0c…

理解MySQL核心技术:外键(Foreign Key)的设计与实现

在日常开发中&#xff0c;数据库是必不可少的部分&#xff0c;而MySQL作为最流行的关系型数据库之一&#xff0c;广泛应用于各类项目中。为了确保数据的完整性和一致性&#xff0c;外键&#xff08;Foreign Key&#xff09;无疑是一个重要的概念。在本篇文章中&#xff0c;我们…

Py之dashscope:dashscope的简介、安装和使用方法、案例应用之详细攻略

Py之dashscope&#xff1a;dashscope的简介、安装和使用方法、案例应用之详细攻略 目录 dashscope的简介 1、产品的主要特点和优势包括&#xff1a; dashscope的安装和使用方法 1、安装 2、使用方法 dashscope的案例应用 1、通义千问-Max&#xff1a;通义千问2.5系列 2…

apk右键一键签名方法

使用说明 1 修改reg文件最后一行&#xff0c;修改为自己的电脑路径 2 修改bat文件apksigner_path路径为自己的SDK路径&#xff0c;将签名文件命名为platform.keystore放在该文件夹内 3 运行reg文件添加注册表后&#xff0c;要签名的apk右键选择“cux”系统签名即可 一键cux系…

第4章,在 PyCharm 中创建、打开、关闭项目的操作

在 PyCharm 中创建、打开、关闭项目的操作 在PyCharm中创建、打开和关闭项目的操作步骤。以下是每个操作的步骤说明&#xff0c;以及在PyCharm界面中可能对应的区域&#xff1a; 1、创建新项目 1&#xff09;启动PyCharm&#xff1a; 打开PyCharm IDE。 2&#xff09;创建新…

从0开始C++(十):异常处理——throw、try-catch、标准异常体系与粗略捕获

目录 概念 抛出异常&#xff08;throw&#xff09; 捕获异常&#xff08;try - catch&#xff09; 标准异常体系 自定义异常 多重捕获 粗略捕获 概念 异常是程序在执行期间产生的问题&#xff0c;C异常是指在程序运行时发生的特殊情况&#xff0c;比如下所示的范围越界等…

Spring Boot中实现定时任务最常用的方法 @Scheduled 注解和 TaskScheduler 接口【包含详情代码】

Spring Boot中实现定时任务最常用的方法 Scheduled 注解和 TaskScheduler 接口【包含详情代码】 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中………

「51媒体」政企活动媒体宣发如何做?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传加速季&#xff0c;100万补贴享不停&#xff0c;一手媒体资源&#xff0c;全国100城线下落地执行。详情请联系胡老师。 政企活动媒体宣发是一个系统性的过程&#xff0c;需要明确…

[数据集][目标检测]金属架螺栓螺丝有无检测数据集VOC+YOLO格式857张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;857 标注数量(xml文件个数)&#xff1a;857 标注数量(txt文件个数)&#xff1a;857 标注类别…

SAP ALV 负号提前

FUNCTION CONVERSION_EXIT_ZSIGN_OUTPUT. *"---------------------------------------------------------------------- *"*"本地接口&#xff1a; *" IMPORTING *" REFERENCE(INPUT) *" EXPORTING *" REFERENCE(OUTPUT) *"…

统信桌面操作系统上使用命令行添加软件图标到任务栏

原文链接&#xff1a;统信桌面操作系统上使用命令行添加软件图标到任务栏 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇在统信桌面操作系统上使用命令行添加软件图标到任务栏的文章。通过命令行将常用软件的图标添加到任务栏&#xff0c;可以快速启动软件&#xf…

Links: Challenging Puzzle Game Template(益智游戏模板)

链接:挑战益智游戏 《Links》是一款独特且具有挑战性的益智游戏,即将发布。 每个级别都会向玩家展示不同的棋盘。目标是通过移动和旋转所有棋子来连接它们。每个棋子都有自己的特点和功能-你可以移动它们,旋转它们,或者两者兼而有之。连接所有棋子,以解决难度和挑战不断增…

吹爆这8款AI工具,好用到打耳光!

一、Snapseek-后台自动屏幕截图软件 Snapseek 是一款安卓端的后台自动屏幕截图软件&#xff0c;专为无缝后台存档你选择的应用程序而设计。一旦你指定了监控的应用程序&#xff0c;Snapseek 就会不断捕获图像&#xff0c;并利用 OCR&#xff08;光学字符识别&#xff09;技术进…