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

开发知识点-Django

在这里插入图片描述

Django

  • 1 了解简介
  • 2 Django项目结构
  • 3 url 地址 和视图函数
  • 4 路由配置
  • 5 请求及响应
  • 6 GET请求和POST请求
    • 查询字符串
  • 7 Django设计模式及模板层
  • 8 模板层-变量和标签
  • 9 模板层-过滤器和继承
    • 继承 重写
  • 10 url反向解析
  • 11 静态文件
  • 12 Django 应用及分布式路由
    • 创建之后 注册 一下
  • 13 模型层及ORM介绍
    • 同步表结构
    • 默认 初始化 id 自增
  • 14 ORM-基础字段及选项
      • django 模型models 常用字段
    • 布尔型
    • 变长字符
    • 继承 Model 类属性
    • 表明 app_模型类名
    • 表 列 字段
  • 15 ORM-基本操作-创建数据
        • python3.7 mysql 部署 问题
    • 只执行 增量 文件
    • 对象 初始化 再 save
    • 引進模型類
  • P16 ORM-查询操作
  • 模型 類 數組 循環 索引 切片 的 操作
    • 類數組 [ <Object (id) > , ...... ]
    • 不再是 类的 实例化对象 object
    • 取值 用 字典 取 key 的 这种方式
    • 元组 用 索引取值
    • .all 的 排序 返回 object
    • 灵活 组合 顺序 不用想
    • locals 把 视图函数 的 局部变量 传到 视图里
    • 结构 的 元素 表现形式 要注意 object 字典 元组
  • 17 ORM-查询操作
    • 条件查询
  • P46 8.04-项目部署-uwsgi
        • CentOS7安装uwsgi遇到的坑
  • P47 8.05-项目部署-nginx
        • 看日志
  • P48 8.06-项目部署-nginx
  • 关联查询
    • on_delete参数的各个值的含义:
  • Django常用的QuerySet操作
  • 前后端分离跨域方案
    • 跨域请求存在诸多安全问题,例如CSRF攻击等,
    • 解决方案
    • Django中如何使用CORS
        • 打开cmd,执行命令:pip install django-cors-headers
        • 修改django项目中的setting.py,
  • centos django uwsgi 指定版本
      • 系统版本
      • 编译:
      • 安装:
      • 然后进行软链接、系统便能够识别uwsgi命令
  • 使用Django生成验证码 并发送qq邮箱

https://www.bilibili.com/video/BV1vK4y1o7jH?from=search&seid=7358572781939588281

1 了解简介

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
flask 轻

手机游戏

请添加图片描述
请求响应 路由

MTV设计结构

HTTP状态的 cookie session

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
解释器 版本

请添加图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

jiu

请添加图片描述

2 Django项目结构

请添加图片描述
完善的 内部组件

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
ctrl shift T 新启终端

请添加图片描述
请添加图片描述
请添加图片描述
服务

地址 协议 状态码

前台服务 启动效果

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
默认数据库 存储 文件

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
在这里插入图片描述

项目目录
配置文件
路由文件
上线项目 运行文件
在这里插入图片描述

内置功能 运行规则 flask 就无

注意 格式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

绝对路径

在这里插入图片描述
项目 绝对 路径
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
区分 虚拟网站 (一个 服务器 挂 好几个 网站 )
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
ctrl shift d 新建终端
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
应用
在这里插入图片描述
中间件
在这里插入图片描述
配置 主路由文件

模板

在这里插入图片描述

在这里插入图片描述
语言 配置
时区
在这里插入图片描述
在这里插入图片描述
东八区 UTC/GMT+08:00

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述




3 url 地址 和视图函数

在这里插入图片描述

协议 域名 ip 端口 路由 ?查询字符串 # 锚点

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
服务 在 主路由 中 配置好 参数 中 视图函数 写好

请求来了 就会有 相应的 响应

在这里插入图片描述

来个伪代码 顶替一下 视图函数
在这里插入图片描述

在这里插入图片描述
把 http 请求 抽象成 HTTPrequest 对象
给 request 函数

在这里插入图片描述
在这里插入图片描述

相对导入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 路由配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
%s int + 字符串 %d

在这里插入图片描述
path 中 在 数组中 从上到下 匹配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

\d 一到两位
\w+ 字符
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

精准匹配
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

path <> path转换器

repath 升级版





5 请求及响应

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

请求 路由 协议
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
增量开发

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述





6 GET请求和POST请求

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查询字符串

防止 明文传递 敏感数据
在这里插入图片描述
参数字典
get取值 默认值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
500 响应

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述





7 Django设计模式及模板层

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Controller — 主路由
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

引擎 数据怎么来 怎么调用

把 Templates 位置 配置到 DIRS 里

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述





8 模板层-变量和标签

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ctrl alt L 格式化

在这里插入图片描述

局部变量 locals
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述





9 模板层-过滤器和继承

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
HTML 转义 <> 进行 转义
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

继承 重写

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述





10 url反向解析

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
动态 解析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述





11 静态文件

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意 元组 中的 逗号
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12 Django 应用及分布式路由

在这里插入图片描述
解耦企业业务 每个文件夹 都是 独立的 MTV



在这里插入图片描述
在这里插入图片描述

创建之后 注册 一下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13 模型层及ORM介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

 
npm run lint -- --fix  pip install pymysql


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

同步表结构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

默认 初始化 id 自增

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14 ORM-基础字段及选项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

django 模型models 常用字段

1、models.AutoField  自增列 = int(11)如果没有的话,默认会生成一个名称为 id 的列如果要显式的自定义一个自增列,必须设置primary_key=True。2、models.CharField  字符串字段必须设置max_length参数3、models.BooleanField   布尔类型=tinyint(1)不能为空,可添加Blank=True4、models.ComaSeparatedIntegerField  用逗号分割的数字=varchar继承CharField,所以必须 max_lenght 参数5、models.DateField日期类型 dateDateField.auto_now:保存时自动设置该字段为现在日期,最后修改日期DateField.auto_now_add:当该对象第一次被创建是自动设置该字段为现在日期,创建日期。6、models.DateTimeField  日期时间类型 datetime同DateField的参数7、models.Decimal  十进制小数类型 = decimalDecimalField.max_digits:数字中允许的最大位数DecimalField.decimal_places:存储的十进制位数8、models.EmailField  一个带有检查 Email 合法性的 CharField9、models.FloatField  浮点类型 = double10、models.IntegerField  整形11、models.BigIntegerField  长整形integer_field_ranges = {'SmallIntegerField': (-32768, 32767),'IntegerField': (-2147483648, 2147483647),'BigIntegerField': (-9223372036854775808, 9223372036854775807),'PositiveSmallIntegerField': (0, 32767),'PositiveIntegerField': (0, 2147483647),}12、models.GenericIPAddressField  一个带有检查 IP地址合法性的 CharField13、models.NullBooleanField  允许为空的布尔类型14、models.PositiveIntegerFiel  正整数15、models.PositiveSmallIntegerField  正smallInteger16、models.SlugField  减号、下划线、字母、数字17、models.SmallIntegerField  数字数据库中的字段有:tinyint、smallint、int、bigint18、models.TextField  大文本。默认对应的form标签是textarea。19、models.TimeField  时间 HH:MM[:ss[.uuuuuu]]20、models.URLField  一个带有URL合法性校验的CharField。21、models.BinaryField  二进制存储二进制数据。不能使用filter函数获得QuerySet。22、models.ImageField   图片ImageField.height_field、ImageField.width_field:如果提供这两个参数,则图片将按提供的高度和宽度规格保存。该字段要求 Python Imaging 库Pillow。会检查上传的对象是否是一个合法图片。23、models.FileField(upload_to=None[, max_length=100, ** options])文件FileField.upload_to:一个用于保存上传文件的本地文件系统路径,该路径由 MEDIA_ROOT 中设置这个字段不能设置primary_key和unique选项.在数据库中存储类型是varchar,默认最大长度为10024、models.FilePathField(path=None[, math=None, recursive=False, max_length=100, **options])FilePathField.path:文件的绝对路径,必填FilePathField.match:用于过滤路径下文件名的正则表达式,该表达式将用在文件名上(不包括路径)。FilePathField.recursive:True 或 False,默认为 False,指定是否应包括所有子目录的路径。例如:FilePathField(path="/home/images", match="foo.*", recursive=True)将匹配“/home/images/foo.gif”但不匹配“/home/images/foo/bar.gif”     2. django 模型models 字段常用参数1、null如果是True,Django会在数据库中将此字段的值置为NULL,默认值是False2、blank如果为True时django的 Admin 中添加数据时可允许空值,可以不填。如果为False则必须填。默认是False。null纯粹是与数据库有关系的。而blank是与页面必填项验证有关的3、primary_key = False主键,对AutoField设置主键后,就会代替原来的自增 id 列4、auto_now 和 auto_now_addauto_now   自动创建---无论添加或修改,都是当前操作的时间auto_now_add  自动创建---永远是创建时的时间5、choices一个二维的元组被用作choices,如果这样定义,Django会select box代替普通的文本框,并且限定choices的值是元组中的值GENDER_CHOICE = ((u'M', u'Male'),(u'F', u'Female'),)gender = models.CharField(max_length=2,choices = GENDER_CHOICE)6、max_length字段长度7、default默认值8、verbose_name  Admin中字段的显示名称,如果不设置该参数时,则与属性名。9、db_column  数据库中的字段名称10、unique=True  不允许重复11、db_index = True  数据库索引12、editable=True  在Admin里是否可编辑13、error_messages=None  错误提示14、auto_created=False  自动创建15、help_text  在Admin中提示帮助信息16、validators=[]验证器17、upload-to文件上传时的保存上传文件的目录

在这里插入图片描述

布尔型

变长字符


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

继承 Model 类属性

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

表明 app_模型类名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

表 列 字段

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15 ORM-基本操作-创建数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

python3.7 mysql 部署 问题

在这里插入图片描述

  • 不要看 这个解决方案 有问题 还是 decode

在这里插入图片描述

只执行 增量 文件

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对象 初始化 再 save

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

引進模型類

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

P16 ORM-查询操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模型 類 數組 循環 索引 切片 的 操作

模型類對象 取中的 屬性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

類數組 [ <Object (id) > , … ]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

不再是 类的 实例化对象 object

在这里插入图片描述
在这里插入图片描述

取值 用 字典 取 key 的 这种方式

在这里插入图片描述

元组 用 索引取值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

.all 的 排序 返回 object

在这里插入图片描述

灵活 组合 顺序 不用想

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

locals 把 视图函数 的 局部变量 传到 视图里

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结构 的 元素 表现形式 要注意 object 字典 元组

17 ORM-查询操作

在这里插入图片描述

条件查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

P46 8.04-项目部署-uwsgi

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CentOS7安装uwsgi遇到的坑
错误原因:没有装 python-dev
注意: cnetos系统下,并不是交python-dev,而是叫python-devel
由于我的python版本是3.6.7的,所以我这里安装的是python36-devel
yum install python36-devel
yum install uwsgi
通过 yum search python3 可以搜索出python3有关的包

在这里插入图片描述

	然后可以进行安装 uwsgi      这么解决   by:aming   2021/09/28

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

P47 8.05-项目部署-nginx

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Kill -9

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

​    
​  
​      location / {
​           include uwsgi_params;
​           uwsgi_pass 127.0.0.1:xxxx;  #端口要和uwsgi里配置的一样
​           uwsgi_param UWSGI_SCRIPT quwan_app.wsgi;  #wsgi.py所在的目录名+.wsgi
​           uwsgi_param UWSGI_CHDIR /www/wwwroot/www.xxxx.top/; #项目路径
​        }
​          location /static/ {
​          alias /www/wwwroot/www.xxxx.cn/static/media/; #静态资源路径
​          }
​    
​    


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

看日志

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

kill掉 端口 进程 和 ini启动的 进程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

P48 8.06-项目部署-nginx

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

gradlew processDebugManifest --stacktrace

python -m django --version

pip freeze > requirements.txt

在这里插入图片描述

留意:

使用Python项目管理插件新建项目成功之后,会自动在项目j源码目录里创建一个虚拟环境,虚拟环境目录一般都是以项目名_venv形式命名的。

进入虚拟环境方法:

在命令行输入 source 项目路径/项目名_venv/bin/activate 如:

source /www/wwwroot/myblog/myblog_venv/bin/activate

项目管理器默认使用pip安装项目根目录requirements.txt内的模块,这也是之前我强调把环境依赖包文件放到项目目录下的原因,如有其他模块需要安装请手动进入虚拟环境安装。

#把APP静态资源收集到指定的目录下,这里我收集到static目录下
STATIC_ROOT  = os.path.join(BASE_DIR, 'static')

之后在SSH终端进入项目虚拟环境:

source /www/wwwroot/myblog/myblog_venv/bin/activate

在这里插入图片描述

出现项目名_venv这个标记,才说明已经成功进入虚拟环境。

然后我们使用下面的命令收集静态文件:

python manage.py collectstatic

关联查询

on_delete参数的各个值的含义:

on_delete=None,               # 删除关联表中的数据时,当前表与其关联的field的行为
on_delete=models.CASCADE,     # 删除关联数据,与之关联也删除
on_delete=models.DO_NOTHING,  # 删除关联数据,什么也不做
on_delete=models.PROTECT,     # 删除关联数据,引发错误ProtectedError
# models.ForeignKey('关联表', on_delete=models.SET_NULL, blank=True, null=True)
on_delete=models.SET_NULL,    # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空,一对一同理)
# models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值')
on_delete=models.SET_DEFAULT, # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,一对一同理)
on_delete=models.SET,         # 删除关联数据,a. 与之关联的值设置为指定值,设置:models.SET(值)b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)

在这里插入图片描述

Django常用的QuerySet操作

 Django常用的QuerySet操作在这里我根据是否支持链式调用分类进行介绍1. 支持链式调用的接口
all
使用频率比较高,相当于SELECT * FROM table 语句,用于查询所有数据。filter
使用频率比较高,根据条件过滤数据,常用的条件基本上字段等于、不等于、大于、小于。当然,还有其他的,比如能修改成产生LIKE查询的:Model.objects.filter(content__contains="条件")。exclude
与filter是相反的逻辑reverse
将QuerySet中的结果倒叙排列distinct
用来进行去重查询,产生SELECT DISTINCT这样的SQL查询none
返回空的QuerySet2. 不支持链式调用的接口
get
比如Post.objects.get(id=1)用于查询id为1的文章:如果存在,则直接返回对应的Post实例;如果不存在,则抛出DoesNotExist异常。所以一般情况下,要使用异常捕获处理:1 try:
2     post = Post.objects.get(id=1)
3 except Post.DoesNotExist:
4 #做异常情况处理
create
用来直接创建一个Model对象,比如post = Post.objects.create(title="一起学习")。get_or_create
根据条件查找,如果没查找到,就调用create创建。update_or_create
与get_or_create相同,只是用来做更新操作。count
用于返回QuerySet有多少条记录,相当于SELECT COUNT(*) FROM table 。latest
用于返回最新的一条记录,但要在Model的Meta中定义:get_latest_by= <用来排序的字段>。earliest
同上,返回最早的一条记录。first
从当前QuerySet记录中获取第一条。last
同上,获取最后一条。exists
返回True或者False,在数据库层面执行SELECT (1) AS "a" FROM table LIMIT 1的查询,如果只是需要判断QuerySet是否有数据,用这个接口是最合适的方式。不要用count或者len(queryset)这样的操作来判断是否存在。相反,如果可以预期接下来会用到QuerySet中的数据,可以考虑使用len(queryset)的方式来做判断,这样可以减少一次DB查询请求。bulk_create
同create,用来批量创建记录。in_ bulk
批量查询,接收两个参数id_ list和filed_ name。可以通过Post.objects. in_ bulk([1, 2, 3])查询出id为1、2、3的数据,返回结果是字典类型,字典类型的key为查询条件。返回结果示例: {1: <Post 实例1>, 2: <Post实例2>,3:<Post实例3>}。update
用来根据条件批量更新记录,比如: Post.objects.filter(owner__name='123').update(title='测试更新')。delete
同update,这个接口是用来根据条件批量删除记录。需要注意的是,和delete都会触发Djiango的signalvalues
当我们明确知道只需要返回某个字段的值,不需要Model实例时,用它,用法如下:1 title_list = Post.objects.filter(category_id=1).values('title')
返回的结果包含dict的QuerySet,类似这样: <QuerySet [{'title' :xxx},]>values_list
同values,但是直接返回的是包含tuple的QuerySet:1 titles_list = Post.objects.filter(category=1).values_list('title')
返回结果类似: <QuerySet[("标题",)]>如果只是一个字段的话,可以通过增加flat=True参数,便于我们后续 处理:1 title_list = Post.objects.filter(category=1).values_list('title',flat=True)
2 for title in title__list:
3     print(title)
2.1进阶接口
除了上面介绍的常用接口外,还有其他用来提高性能的接口,在下面介绍。 在优化Django项目时,尤其要考虑这几种接口的用法。defer
把不需要展示的字段做延迟加载。比如说,需要获取到文章中除正文外的其他字段,就可以通过posts = Post.objects.all() .defer('content'),这样拿到的记录中就不会包含content部分。但是当我们需要用到这个字段时,在使用时会去加载。代码:1 posts = Post.objects.all().defer('content')
2 for post in posts:  #此时会执行数据库查询
3     print (post.content)  #此时会执行数据查询,获取到content
当不想加载某个过大的字段时(如text类型的字段),会使用defer,但是上面的演示代产生N+1的查询问题,在实际使用时千万要注意!注意:上面的代码是个不太典型的 N+1查询的问题, 一般情况下 由外键查询产生的N+1问题比较多,即一条查询请求返回N条数据,当我们操作数据时,又会产生额外的请求。这就是N+1问题,所有的ORM框架都存在这样的问题。only
同defer接口刚好相反, 如果只想获取到所有的title记录,就可以使用only,只获取title的内容,其他值在获取时会产生额外的查询。select_related
这就是用来解决外键产生的N+1问题的方案。我们先来看看什么情况下会产生这个问题:posts = Post.objects.all ()
for post in posts:  #产生数据库查询print (post.owner)  #产生额外的数据库查询
代码同上面类似,只是这里用的是owenr(是关联表)。它的解决方法就是用select_ related接口:post = Post.objects.all() .select_related('category')
for post in posts: # 产生数据库查询,category数据也会一次性查询出来print (post.category)
当然,这个接口只能用来解决一对多的关联关系。对于多对多的关系,还得使用下面的接口。prefetch_related
针对多对多关系的数据,可以通过这个接口来避免N+1查询。比如,post和tag的关系可以通过这种方式来避免:posts = Post.objects.all().prefetch_related('tag')
for post in posts:#产生两条查询语句,分别查询post和tagprint(post.tag.al1())
3.常用的字段查询
contains
包含,用来进行相似查询。icontains
同contains,只是忽略大小写。exact
精确匹配。iexact
同exact,忽略大小写。in
指定某个集合,比如Post.objects.filter(id__in=[1, 2, 3])相当于SELECT FROM table WHERE IN (1, 2, 3);。gt
大于某个值。比如:Post.objects.filter(id__gt=1)注意:是__gtgte
大于等于某个值。lt
小于某个值。lte
小于等于某个值。startswith
以某个字符串开头,与contains类似,只是会产生LIKE '<关键词>%'这样的SQL。istartswith
同startswith, 忽略大小写。endswith
以某个字符串结尾。iendswith
同endswith,忽略大小写。range
范围查询,多用于时间范围,如Post.objects.filter(created_time__range= ('2018-05-01','2018-06-01'))会产生这样的查询: SELECT .. . WHERE created_ time BETWEEN '2018-05-01' AND '2018-06-01' ;。关于日期类的查询还有很多,比如date、year和month等,具体等需要时查文档即可。这里你需要理解的是,Django之所以提供这么多的字段查询,其原因是通过ORM来操作数据库无法做到像SQL的条件查询那么灵活。因此,这些查询条件都是用来匹配对应SQL语句的,这意味着,如果你知道某个查询在SQL中如何实现,可以对应来看Django提供的接口。3.1 进阶查询
除了上面基础的查询语句外,Django还提供了其他封装,来满足更复杂的查询,比如 SELECT ... WHERE id = 1 OR id = 2 这样的查询,用上面的基础查询就无法满足。F
F表达式常用来执行数据库层面的计算,从而避免出现竞争状态。比如需要处理每篇文章的访问量,假设存在post.pv这样的字段,当有用户访问时,我们对其加1:post = Post.objects.get(id=1)
post.pv = post.pv+1
post.save()
这在多线程的情况下会出现问题,其执行逻辑是先获取到当前的pv值,然后将其加1后赋值给post .pv.最后保存。如果多个线程同时执行了post = Post.objects.get(id=1),那么每个线程里的post .pv值都是一样的, 执行完加1和保存之后,相当于只执行了一个加1,而不是多个。这时通过F表达式就可以方便地解决这个问题:from ajango.ab. models import F
post = Post.objects.get(id=1)
post.pv = F('pv') + 1
post.save():
这种方式最终会产生类似这样的SQL语句: UPDATE table SET pv = pv +1 WHERE ID = 1。 它在数据库层面执行原子性操作。Q
Q表达式就是用来解决前面提到的那个OR查询的,可以这么用:from django.db.mode1s import Q
Post.objects.filter(Q(id=1) | Q(id=2))
或者进行AND查询:Post.objects.filter(Q(id=1) & Q(id=2))
Count
用来做聚合查询,比如想要得到某个分类下有多少篇文章,简单的做法就是:category = Category.objects.get(id=1)
posts_count = category.post_set.count()
但是如果想要把这个结果放到category上呢?通过category.post_count可以访问到:from django.db.models import Count
categories = Category.objects.annotate(posts_count=Count('post'))
print(categories[0].posts_count)
这相当于给category动态增加了属性post_count,而这个属性的值来源于Count('post'),最后可以用int取整。Sum
同Count类似,只是它是用来做合计的。比如想要统计所有数据字段的总和,可以这么做:from django.db.models import Sum
Post.objects.all().aggregate(a=Sum('字段'))
#输出类似结果:{'a':487}为字典
python中对字典中键值对的获取:for i in book:print(i)#键的获取print(book[i])#值的获取
上面演示了QuerySet的annotate和aggregate的用法,其中前者用来給QuerySet结果増加属性,后者只用来直接计算结果,这些聚合表达式都可以与它们结合使用。除了Count和Sum外,还有Avg、Min和Max等表达式,均用来满足我们对SQL査洵的需求。

在这里插入图片描述
在这里插入图片描述

  • 语法
  • 路径导向
    在这里插入图片描述
  • 蟒蛇—> google
  • 双态 动态 静态 自动记忆管理(java 有 C没有)
    在这里插入图片描述
  • 符号处理 后端平行处理
  • 语法形态
  • 数值应用 运算
  • 连续 分散
  • 语法适合 特别学术需求

在这里插入图片描述

  • 框架转换
    在这里插入图片描述
    在这里插入图片描述
  • 空白键 缩排 跳行 有意义 (其他语言得 “ ;”{ }“)
  • \ 转义字符
    在这里插入图片描述
    在这里插入图片描述
  • 模组 变量
  • 区分大小写

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

前后端分离跨域方案

跨域请求存在诸多安全问题,例如CSRF攻击等,

浏览器针对这个安全问题会有一个同源策略,必须是我们上面说到的同源请求,才能顺利发出请求。

解决方案

1.JSONP,比较原始的方法,
  本质上是利用html的一些不受同源策略影响的标签,
  诸如:、、、

2.CORS,Cross-Origin Resource Sharing,是一个新的 W3C 标准,
  它新增的一组HTTP首部字段,允许服务端其声明哪些源站有权限访问哪些资源。
  换言之,它允许浏览器向声明了 CORS 的跨域服务器,发出 XMLHttpReuest 请求
  ,从而克服 Ajax 只能同源使用的限制。
  在我们的django框架中就是利用CORS来解决跨域请求的问题。

Django中如何使用CORS

打开cmd,执行命令:pip install django-cors-headers

在这里插入图片描述

修改django项目中的setting.py,
   INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','corsheaders',#这是我们的主角,放在新建的其他项目之前'app01',]MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','corsheaders.middleware.CorsMiddleware', #注意顺序,必须放在这儿'django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',]
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
#允许所有的请求头
CORS_ALLOW_HEADERS = ('*')
pip freeze > requirements.txt

服务器 中 重新 安装 依赖

 pip install -r requirements.txt

在这里插入图片描述

  • 更新 settings 文件

在这里插入图片描述
在这里插入图片描述

centos django uwsgi 指定版本

系统版本

在这里插入图片描述
在这里插入图片描述

 wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz

在这里插入图片描述

 tar zxvf uwsgi-latest.tar.gz 

编译:

python  uwsgiconfig.py --build

这里的python 即指定uwsgi项目运行的python环境,在这之前,我做了软链接指向了我的python3.7环境

在这里插入图片描述

安装:

 python3 setup.py install

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后进行软链接、系统便能够识别uwsgi命令

ln -s   uwsgi目录   /usr/bin/uwsgi
 ln -s /root/myProject/uwsgi/uwsgi-2.0.17.1/uwsgi /usr/bin/uwsgi

之后再用uwsgi去运行项目时、会自动调用上面编译的环境。

在这里插入图片描述

使用Django生成验证码 并发送qq邮箱

一、登录QQ邮箱–>设置–>账户–>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

在这里插入图片描述
在这里插入图片描述

 
# 设置邮件域名 发送邮件服务器:smtp.qq.com
EMAIL_HOST = 'smtp.qq.com'
# 设置端口号,为数字  使用SSL,端口号465587
EMAIL_PORT = 25
# 设置发件人邮箱
EMAIL_HOST_USER = 'xxxxxxx'
# 设置发件人授权码
EMAIL_HOST_PASSWORD = 'xxxxxxxx'
# 设置是否启用安全连接
EMAIL_USE_TLS = True
 # redis连接
REDIS_CON = redis.StrictRedis(host='localhost', port=6379)
 # 随机验证码
def vercode(user):res1 = ''for i in range(4):num = random.randint(0, 9)res1 += str(num)REDIS_CON.set(f'{user}', res1)REDIS_CON.expire(f'{user}', 10)return res1class Send_Email(View):def get(self, request):re_send = request.GET.get('email')sbj = '测试邮箱发送验证码'msg = f'您的验证码为:{vercode(re_send)}'from_send = EMAIL_HOST_USER# subject 标题 message 内容 from_email 发送人 recipient_list 接收人(多个)res = send_mail(subject=sbj, message=msg, from_email=from_send, recipient_list=[re_send])if res == 1:return render(request, 'send_email.html')else:return render(request, 'send_email.html')class register(View):def get(self, request):code = request.GET.get('code')email = request.GET.get('email')if email:scode = REDIS_CON.get(email)if scode:if code == scode.decode('utf-8'):print('验证成功')else:print('验证码不正确')else:print('验证码已失效')else:print('邮箱不正确')return HttpResponse('ok')
 <!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>发送邮箱</title><script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
邮箱:<input type="text" name="email" id="email_id">
<input type='submit' value="发送邮箱" onclick="send()">
</body>
<script>function send() {$.ajax({url:'http://127.0.0.1:8000/app01/send_email/',method:'get',data:{'email':document.getElementById('email_id').value}})}
</script>
</html>

相关文章:

开发知识点-Django

Django 1 了解简介2 Django项目结构3 url 地址 和视图函数4 路由配置5 请求及响应6 GET请求和POST请求查询字符串 7 Django设计模式及模板层8 模板层-变量和标签9 模板层-过滤器和继承继承 重写 10 url反向解析11 静态文件12 Django 应用及分布式路由创建之后 注册 一下 13 模型…...

Linux系统笔记参考

Linux系统笔记 一、基本命令 1、简单的几个命令 ls&#xff1a;显示指定目录下的文件目录清单&#xff08;list&#xff09; cd&#xff1a;切换目录&#xff0c;改变当前的工作目录&#xff08;change directory&#xff09; cd ~ 或 cd 切换到用户主目录&#xff08;用户家…...

AI:62-基于深度学习的人体CT影像肺癌的识别与分类

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…...

数字孪生智慧工厂3D无代码编辑工具提供强大、简单功能

相比传统的2D/2.5D&#xff0c;3d可视化场景脱颖而出&#xff0c;成为更多行业的首选&#xff0c;然而传统的3D可视化场景制作需要花费大量的人力财力及周期来创建复杂的3D模型和场景&#xff0c;对很多企业及个人来说是个挑战&#xff0c;3D可视化场景编辑器通过简单的拖拉拽&…...

python 为什么这么受欢迎?python的优势到底在哪里?

常言道:“流水的语言&#xff0c;铁打的Python”&#xff0c;目前它可以说是已经"睥睨天下&#xff0c;傲视群雄"了。它天生丽质&#xff0c;易于读写&#xff0c;非常实用&#xff0c;从而赢得了广泛的群众基础&#xff0c;被誉为"宇宙最好的编程语言"&am…...

Flutter转换png图片为jpg图片

1.需求 在xxx产品需求中&#xff0c;需要将png图片转为jpg图片。 2.引用库 image: ^4.1.3 Dart图像库提供了以各种图像文件格式加载、保存和操作图像的功能。 该库可以与dart:io和dart:html一起用于命令行、Flutter和web应用程序。 注&#xff1a;4.0是该库先前版本的主要修订…...

c++ grpc 第一个用例

一、linux 包管理工具安装 sudo apt-get update sudo apt-get install -y build-essential autoconf libtool pkg-config cmake sudo apt-get install -y libgflags-dev libgtest-dev sudo apt-get install -y clang libc-dev# 安装 gRPC C 相关依赖 sudo apt-get install -y …...

pandas笔记:读写excel

1 读excel read_excel函数能够读取的格式包含&#xff1a;xls, xlsx, xlsm, xlsb, odf, ods 和 odt 文件扩展名。 支持读取单一sheet或几个sheet。 1.0 使用的数据 1.1 主要使用方法 pandas.read_excel(io, sheet_name0, header0, namesNone, index_colNone, usecolsNon…...

【ES分词】

分词 #测试分词器 POST /_analyze {"text": "小米手机和华为手机都是国产mobilephone", "analyzer": "english" }不管analyzer是改成&#xff1a;standard还是chinese都无法实现中文分词。 处理中文分词一般采用IK分词器 安装链接&…...

Git设置显示中文

git config --global i18n.comitencoding utf-8 git config --global i18n.logoutputencoding utf-8 export LESSCHARSETutf-8...

数实结合的复杂电磁环境构建解决方案

数实结合的复杂电磁环境构建解决方案 数实结合的复杂电磁环境构建 目前无线收发设备面临的电磁环境愈发恶劣。为了检验设备在复杂电磁环境下的实际工作性能&#xff0c;需进行各种应用条件下的测试和试验。外场测试难以提供各种应用环境&#xff0c;存在测试周期长、成本高、难…...

MySQL geometry 类型数据测试

MySQL的geometry类型的表的创建和测试&#xff1a; CREATE TABLE geom_test01( id INT NOT NULL PRIMARY KEY, info varchar(100), geom GEOMETRY ); desc geom_test01; insert into geom_test01 (id,info,geom) values (1, geom, geomfromtext(MULTIPOLYGON(((1 1…...

基于袋獾算法的无人机航迹规划-附代码

基于袋獾算法的无人机航迹规划 文章目录 基于袋獾算法的无人机航迹规划1.袋獾搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用袋獾算法来优化无人机航迹规划。 1.袋獾搜索算法 …...

2024上海智博会,上海国际智慧城市,物联网,大数据展会(世亚智博会)

中国国际智慧城市,物联网,大数据博览会&#xff08;简称:世亚智博会&#xff09;自2010年创办以来&#xff0c;至今已成功举办十多届。世亚智博会是中国较高、规模较大、影响力较广的展会&#xff1b;是被国际业界公认的不可错过的名展之一。随着世亚智博会的国际地位和影响不断…...

家庭教育质量提升成未来教育关注重点

随着教育改革的不断深化&#xff0c;家校合作模式也在实践中不断探索和丰富。 11 月 6 日&#xff0c;第六届长三角家校合作论坛于上海杨浦盛大开幕&#xff0c;此次论坛围绕“家校协同与人的学校领导”这一主题展开深度研讨。论坛旨在交流和分享相关经验及做法&#xff0c;以…...

python入门系列(1)—— 环境安装

前言 社区里面有好多同学想要入门python&#xff0c;可能源于以下原因&#xff1a; 易学性&#xff1a;Python 的语法简洁、清晰&#xff0c;容易理解和上手&#xff0c;使得初学者能够轻松入门编程。无论是编写基本的脚本还是进行更复杂的开发&#xff0c;Python 都提供了友…...

react组件通信

目录 前言&#xff1a; 父子组件通信 子父组件通信 兄弟组件通信 总结 前言&#xff1a; React是一种流行的JavaScript库&#xff0c;用于构建现代化的、高性能的Web应用程序。在React中&#xff0c;组件是代码的构建块。组件通信是React中一个非常重要的概念&#xff0c;…...

学习笔记|Pearson皮尔逊相关系数|Spearman斯皮尔曼相关系数|和Kendall肯德尔tau-b相关系数|分析流程|-SPSS中双变量相关性分析系数

目录 学习目的软件版本原始文档基础概念皮尔逊相关系数基本假设&#xff08;适用条件&#xff09;&#xff1a;系数的范围及意义实例1. 读数据&#xff1a;2.正态性检验&#xff1a;3.异常值检验&#xff08;体重&#xff09;&#xff1a;4.分析&#xff1a; 斯皮尔曼相关系数基…...

计算机服务器中了locked勒索病毒怎么办,勒索病毒解密,数据恢复

随着网络技术的不断成熟&#xff0c;网络中存在的病毒威胁也不断增多&#xff0c;近期&#xff0c;云天数据恢复中心陆续接到很多企业的求助&#xff0c;企业的计算机服务器数据库遭到了勒索病毒攻击&#xff0c;并且勒索病毒的攻击与加密形式也发生了许多变化。其中攻击次数较…...

本地生活餐饮视频怎么拍摄能有更多流量?如何批量生产呢?

本地生活近几年特别的火&#xff0c;所以到现在各类内容雷同性也比较高&#xff0c;视频缺少新的创意和玩法&#xff0c;像餐饮店的视频&#xff0c;大部分都是拍顾客进门、拍餐饮店座无虚席的实景……作为用户&#xff0c;其实早就已经看腻了。 今天推荐本地生活餐饮店商家拍…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...