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

三阶: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 pathfrom django.http import HttpResponsedef 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 HttpResponsedef userinfo(request,id,name):......

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

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

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

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

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

相关文章

[分布式网络通讯框架]----MprpcChannel以及ZkClient实现

在调用远程发布的rpc方法的Login时&#xff0c;我们使用了UserServiceRpc_Stub类&#xff0c;即fixbug::UserServiceRpc_Stub stub(new MprpcChannel());&#xff0c;来看看这个类的底层 实际上&#xff0c;是一个RpcChannel类&#xff0c;进入RpcChannel类 底层又是一个抽象类…

Amazon OpenSearch Service 现在支持 JSON Web Token(JWT)身份验证和授权

最近&#xff0c;Amazon OpenSearch 推出了一个新功能&#xff0c;支持 JWT 认证和授权。虽然这个功能在开源的 OpenSearch 中早已存在&#xff0c;但在托管的 Amazon OpenSearch 中的实现一直不够理想。 此前的授权方式 控制台登录 内部数据库&#xff1a;使用基本的用户名…

Android开发系列(十一)Jetpack Compose之Dialog

Dialogs是在应用程序中显示一些额外信息或进行用户交互的常见功能。Jetpack Compose中的Dialog可以通过使用AlertDialog组件来创建。 基本用法 下面通过示例来了解Dialog的使用。 OptIn(ExperimentalMaterial3Api::class) Composable fun AlertDialogExample(onDismissReques…

Redis 7.x 系列【9】数据类型之自动排重集合(Set)

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 前言2. 常用命令2.1 SADD2.2 SCARD2.3 SISMEMBER2.4 SREM2.5 SSCAN2.6 SDIFF2.7 SU…

DiAtom 共生菌固氮作用产生的碳输出(ANACONDAS)

Amazon iNfluence on the Atlantic: CarbOn export from Nitrogen fixation by DiAtom Symbioses (ANACONDAS) 亚马逊对大西洋的影响&#xff1a;DiAtom 共生菌固氮作用产生的碳输出&#xff08;ANACONDAS&#xff09; 简介 该研究项目探讨了亚马逊河羽流对热带北大西洋西部…

ECharts 源码代码规范

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

STM32-hal库学习(4)--usart/uart通信 (同时显示在oled)

前言&#xff1a; 关于usart详解&#xff1a; stm32-USART通信-CSDN博客 因为在oled上显示&#xff0c;我们直接在上一个工程进行修改&#xff1a; STM32_hal库学习&#xff08;3&#xff09;-OLED显示-CSDN博客 其他配置与oled显示工程保持不变&#xff0c;打开oled文件的…

并发编程工具集——Lock和Condition(上)(十二)

简述&#xff1a;Java SDK 并发包通过 Lock 和 Condition 两个接口来实现管程&#xff0c;其中 Lock 用于解决互斥问题&#xff0c;Condition 用于解决同步问题。 再造管程的理由和期望 理由&#xff1a;synchronized 没有办法解决“破坏不可抢占条件方案”。 原因是synchroniz…

Linux kernel 与 设备树

Linux kernel 与 设备树 1 介绍1.1 概述1.2 发展历程1.3 各版本发布时间及特色1.4 Linux 单内核1.5 Linux 内核网址1.6 NXP 官方镜像与 野火 鲁班猫镜像的区别 2 Linux 内核组成2.1 进程管理2.2 内存管理2.3 文件系统2.4 设备管理2.5 网络功能 3 Linux 内核编译3.1 编译 Kernel…

小程序发布必须进行软件测试吗?测试内容有哪些?

在如今移动互联网时代&#xff0c;小程序已成为许多企业广泛采用的一种营销手段&#xff0c;然而&#xff0c;发布小程序之前进行充分的软件测试是至关重要的&#xff0c;因为它不仅可以确保小程序的质量&#xff0c;还可以避免潜在的风险和损失。 在进行小程序发布前进行软件…

可逆质子陶瓷电化学电池(R-PCEC)作为新型能量存储与转换装置开发应用价值大

可逆质子陶瓷电化学电池&#xff08;R-PCEC&#xff09;作为新型能量存储与转换装置开发应用价值大 可逆质子陶瓷电化学电池&#xff08;R-PCEC&#xff09;&#xff0c;同时具有燃料电池与电解槽功能&#xff0c;能够实现电能、化学能相互转化&#xff0c;是最具有发展前景的能…

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

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

餐饮冷库安全守护神:可燃气体报警器检定的科学性与有效性

随着餐饮业的快速发展&#xff0c;冷库成为储存食材、保证食品质量的重要场所。 然而&#xff0c;由于冷库环境的特殊性&#xff0c;如密封性强、温度低、湿度大等&#xff0c;一旦冷库内发生可燃气体泄露&#xff0c;后果将不堪设想。因此&#xff0c;在餐饮冷库中安装并合理…

SpringBoot集成道历(实现道历日期查询)

官网地址&#xff1a;官网地址https://6tail.cn/calendar/api.html 1、导入依赖 <dependency><groupId>cn.6tail</groupId><artifactId>lunar</artifactId><version>1.3.9</version></dependency><dependency><group…

MQTT遗嘱信息(2)

接前一篇文章&#xff1a;MQTT遗嘱信息&#xff08;1&#xff09; 本文内容参考&#xff1a; 什么是MQTT遗嘱消息&#xff1f;如何配置和处理遗嘱消息&#xff1f;_mqtt last will-CSDN博客 MQTT 协议学习&#xff1a;Retained&#xff08;保留消息&#xff09; 与 LWT&#x…

shark云原生-日志管理体系-filebeat

文章目录 1. deploy 文件1.1 RBAC1.2. DaemonSet1.2.1. Elasticsearch 连接信息1.2.2. Volume 1.3. ConfigMap1.3.1. 日志收集路径1.3.2. 日志事件输出目标 2. 在控制平面节点上运行Filebeat3. 查看输出3.1. 关于处理器 processors 4. 日志收集配置4.1. 手动指定日志收集路径4.…

基于SpringBoot前后端分离旅游出行管理系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f;感兴趣的可以先收藏起来&#xff0c;还…

聚观早报 | iPhone 16核心硬件曝光;三星Galaxy全球新品发布会

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 6月28日消息 iPhone 16核心硬件曝光 三星Galaxy全球新品发布会 苹果正多方下注布局AI商店 黄仁勋2024年薪酬3400…

Zynq7000系列FPGA中的DMA控制器简介(一)

DMA控制器&#xff08;DMAC&#xff09;使用64位AXI主接口来执行与系统存储器和PL外围设备之间的DMA数据传输&#xff0c;操作频率同CPU_2x的时钟速率。传输由DMA指令执行引擎控制。DMA引擎运行在一个小指令集上&#xff0c;该指令集提供了一种灵活的指定DMA传输的方法。这种方…

【电路笔记】-MOSFET放大器

MOSFET放大器 文章目录 MOSFET放大器1、概述2、电路图3、电气特性3.1 ** I D = F ( V G S ) I_D=F(V_{GS}) ID​=F(VGS​)**特性3.2 I D = F ( V D S ) I_D=F(V_{DS}) ID​=F(VDS​)特性4、MOSFET放大器5、输入和输出电压6、电压增益7、总结1、概述 在前面的文章中,我们已经…