- 博客(55)
- 收藏
- 关注
原创 sqlalchemy的inspect,提取数据库字段的名称和注释
print(column.comment) # 提取字段注释。print(column.name) # 提取字段名称。# 引用inspect,得到Index数据库的所有字段信息。
2024-11-08 16:57:31 38
原创 信息安全技术
跨站脚本:web应用中,接收错误的客户端数据,导致向其他客户端提供错误数据。跨站请求伪造:web应用中,未充分验证用户信息,导致客户端向服务端发送其他请求。SQL注入:基于数据库,外部输入的SQL语句,导致数据库出错。后置链接:未正确过滤文件名中的链接或快捷方式,导致访问其他文件。路径遍历:未正确过滤文件路径中的特殊元素,导致访问权限外目录。资源管理错误:系统资源(内存、硬盘、cpu等)的错误管理。缓存区错误:缺少边界数据,缓存区溢出、堆溢出。数字错误:数字计算、转换错误,导致整数溢出、符号错误。
2024-11-06 09:43:14 405
原创 序列化,drf
获取对应模型的序列化方法,用get_serializer(instance=user,data=user_all)在函数中调用。user_name = serializers.CharField(max_length=20,label='用户名')password = serializers.CharField(max_length=20,label='用户密码')id = serializers.IntegerField(label='用户id',read_only=True)
2024-11-06 09:42:51 227
原创 自定义路由、django的models常用字段
{trailing_slash} —— “/” 或空字符串,取决于 trailing_slash 参数。{trailing_slash} —— “/” 或空字符串,取决于 trailing_slash 参数。{url_name} —— 提供给 @action 的 url_name。{url_name} —— 提供给 @action 的 url_name。{basename} —— 用于创建的 URL 名称的基础。{basename} —— 用于创建的 URL 名称的基础。
2024-11-06 09:42:17 261
原创 系统监控项目的概要
CPU使用率、内存使用率、硬盘使用 率、网络IO(出入流量瞬时/kb )视图四:后台生成报告,设置存储位置,下载的唯一标识。视图二:获取全部数据,进行分页、筛选。主机名host_ip、日期time。视图一:周期性获取数据并存储。视图三:获取主机ip接口数据。视图五:返回404状态码。五条路由对应五个视图。
2024-11-06 09:42:05 98
原创 python的简单要求(如有雷同,纯属巧合)
300~399 :为完成请求,客户需进一步细化请求。例如:请求的资源已经移动一个新地址、常用302(所请求的页面已经临时转移至新的url)、307和304(使用缓存资源)。400~499:客户端的请求有错误,常用404(服务器无法找到被请求的页面)、403(服务器拒绝访问,权限不够)。100~199:表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。500~599:服务器端出现错误,常用500(请求未完成。5.重要的基础常用变量:大写,多字母增加下划线。波浪号的地方,请务必留意!
2024-11-06 09:41:50 173
原创 Django响应
data只需传递Python的内建类型数据即可,如果是Django的模型类对象,那么就是用序列化数据(Python的字典数据)传递给data。HTTPResponse(content=响应体,content_type=响应体数据类型,status=状态码),是HTTPResponse的子类,适用于处理json格式的数据,但是不能返回模板。是Django rest-framework框架中封装好的响应对象。可以修改返回的数据类型,适用于返回图片,视频,音频等二进制文件。是由Django创造的,
2024-11-03 13:50:49 280
原创 python获取本机信息的一些用法
发送 psutil.net_io_counters().bytes_sent。网络I/O速率 接收 psutil.net_io_counters().bytes_recv。内存使用率 psutil.virtual_memory().percent。硬盘使用率 psutil.disk_usage('/').percent。# 拼接两个及以上的路径,第二个下调用了time模块。# 如果文件不存在,直接创建并打开。# 直接在本机路径上加上路径。
2024-11-03 13:49:23 121
原创 drf分页,python创建用户,drf过滤
_icontains 包含 忽略大小写 ilike ‘%aaa%’,但是对于sqlite来说,contains的作用效果等同于icontains。page_size_query_param = 'new-size' # 前端查询字符串关键字,控制每页显示多少条关键字。page_query_param = 'new-page' # 前端发送的页数关键字名,默认为"page"# 当查询时,可以设置page和size,分别为第几页的页数,size为当前页面的信息条数。__istartswith 以…
2024-11-03 13:48:24 272
原创 WEB防护
x-forwarded-for:当使用代理时,这里获取的是真实ip,remote_addr获取的是代理ip。Web防护是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品,代理(proxy):本机发送请求->代理服务器->Web服务器->返回响应给代理->代理返回本机。WEB防护的范围比较广,主要是指针对web安全而做的各种防御措施,普匿代理:告诉别人使用的是代理,但是不显示本机ip。透明代理:告诉别人使用的是代理,并显示本机ip。它们是实施网间访问控制的一组组建的集合,
2024-11-03 13:45:20 438
原创 Django视图写法
get_serializer(self,_args, *_kwargs) 返回序列化器对象 ~serializer = self.get_serializer(book)get_object(self) 返回详情视图所需的模型类数据对象 ~book = self.get_object()get_queryset(self) 返回视图使用的查询集 ~books = self.get_queryset()反序列化:拿到前端数据->序列化器的data->调用序列化器的is_vaid()方法。
2024-11-03 13:39:59 406
原创 时间工具包:time
获取当前系统时间,类型为<class 'datetime.datetime'># 设置一个时间,可用来获取时间差后比较(有时数据库数据有八小时差,所以需要加8)@classmethod通俗解释:可以不需要实例化,直接用类名.方法名()调用。# 获取自某时间(1970纪元)到目前为止的秒数。# 加入格式:年-月-日 时:分:秒.微妙。# 去除时区信息,例:+00:00。# utc(协调世界时)
2024-11-03 13:38:35 277
原创 多线程工具包:threading
thread = threading.Thread(target=s,name='传递数据-子线程')# 将周期作为函数被放入线程里 只能实现几次调用,且周期间隔不是指定的样式。# 将线程作为函数被放入周期里 无法实现异步的功能。# 将该子线程加入主线程,失去了异步执行线程的意义。# 但是定时任务可以完成子线程中运行。# start()函数来启动该线程。# 查看当前的线程名字。# 需要放入子线程中的函数。threading函数。
2024-11-03 13:37:59 137
原创 reportlab生成报告文件
from reportlab.lib.pagesizes import letter, A4 # 页面大小。from reportlab.pdfbase.ttfonts import TTFont # 字体类。# 画布命名、大小,pagesize可以设为A4或者letter,需要调用模块。# 文字位置、文字内容、单词间距wordspace、字符间距charspace。# 颜色RGB调色,该种调色区别不太明显。# 字体、大小、行间距leading。# 插入图片,图片名、位置、大小。
2024-11-03 13:35:00 351
原创 es数据库
{'name':'赵云','age':25,'sex':'male','birthday':'1995-01-01','salary':8000},{'name':'张飞','age':24,'sex':'male','birthday':'1996-01-01','salary':8000},{'name':'关羽','age':23,'sex':'male','birthday':'1996-01-01','salary':8000},q=加要查询的值或者指定属性的值('赵云',name='赵云')
2024-11-03 13:34:15 375
原创 python manage.py
文件夹建立:(Python Package)这个形式的包,里面会自动加载__init__.py文件。# 相应的属性不加content_type='application/json',才可以实现。1.新建management文件夹(文件必须加载在新建APP下,不能建在初始APP下)建立tests.py文件,通过python manage.py调用。# 查看每个APP下的所有python manage.py 命令。# 启动控制台,且加载配置文件settings.py。3.在其下创建名为:任意.py文件。
2024-11-03 13:32:55 222
原创 画图工具包:pyecharts、pygal
bar.set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))bar.add_yaxis("某某某", [300, 20, 360, 100, 750, 290])bar.add_xaxis(['一月','二月','三月','四月','五月','六月'])# 生成一个矢量图svg,保存在指定位置,svg类型文件可以在浏览器中打开。# 生成图片,需要安装cairosvg模块,(未实现)# 产生的线条名字,y轴的点位。
2024-11-03 13:32:03 241
原创 pip镜像源,pycharm设置镜像源
pip install +库名 -i https://pypi.tuna.tsinghua.edu.cn/simple/pip install +库名 -i +镜像源。
2024-11-03 13:29:19 434
原创 logging日志工具
logging.debug('这是一条 debug 信息, %s, %d',info,number_info)print('测试logging是不是线程,如果最后输出,就证明线程')# logging.critical('这是一条 严重的错误 信息')# logging.warning('这是一条 警告 信息')# logging.info('这是一条 日志记录 信息')# logging.error('这是一条 错误 信息')Loggers 记录器。Formatters 格式化器。
2024-11-03 13:28:42 303
原创 gunicorn
位置通常是在反向代理(如 Nginx)和一个 web 应用(如Flask)之间。fcntl 模块在 Windows 上不可用。它公开的功能在该平台上不存在。目前Gunicorn只能运行在Linux环境中,不支持windows平台。pip install fcntl安装出错,没有合适、匹配的版本。-b:表示绑定ip地址和端口号(bind)该gunicorn需要带入模块fcntl。-w: 表示进程(worker)-D:表示以守护进程方式运行。
2024-11-03 13:27:22 128
原创 gitbash简单操作
只要将.gitignore文件放在文件夹下就可以,.gitignore是文本文档形式的文件。master是正式版,master分支应该是非常稳定的,也就是仅用来发布新版本。可以提前创建.gitignore文件,放入某分支,即刻做到忽略文件的作用。方法二:克隆ssh下的文件,转换不同的分支,不受远程库是否有该分支影响。方法一:创建一个新的分支master,且远程库里没有该分支。拉取远程分支最新的commit到本地仓库分支dev。工作区(空间)--暂存区--本地仓库--远程仓库。
2024-11-03 13:24:09 482
原创 generics.listcreate、retrieveupdatedestroy.apiview
raise serializers.ValidationError('该用户没充钱,vip')raise serializers.ValidationError('密码必须纯数字')# 只需要定义一些属性就可以直接调用模型,自动填充get/post/delete/put功能。# 三级视图的模型序列化器。# 这里使用的是三级视图。# 这里使用三级视图。
2024-11-02 22:22:23 121
原创 etcd-python
可以将获取的两个值,给到两个参数,中文需要decode()翻译。# 创建数据(以K-V值形式,返回数据产生的header{})# 获取数据(返回数据值、数据对象<object>)关于etcd,被封装的工具,可以看测试用例,etcd内部采用raft协议作为一致性算法。分布式系统中提供强一致性、高可用性的组件。分布式键值(key-value)数据库。# 连接etcd(可以加用户名密码)# 删除数据(返回true)用来存储少量重要的数据。
2024-11-02 22:21:21 137
原创 ETCD简介
/刷新权限立即生效。Linux下docker 容器退出bash的两种实现方法。对于应用数据,只推荐数据量很小,但是更新访问频繁的情况。-t 为容器重新分配一个伪输入终端,通常与-i同时使用。-d 后台运行容器,并返回容器ID,也即启动守护式容器。Ctrl + p + q 退出并在后台运行容器;etcd的使用场景默认处理的数据都是控制数据,-i 以交互模式运行容器,通常与-t同时使用。Ctrl + d 退出并停止容器;
2024-11-02 22:20:34 522
原创 docker、es数据库
yum-utils是yum的工具包集合,由不同的作者开发,使yum使用起来更加方便和强大。2.然后将容器启动,使之变成运行时容器(docker start)简单运行:只挂后台,环境设为单机运行,映射端口只有一个,加镜像id。-p: 指定端口映射,格式为:主机(宿主)端口:容器端口。docker start的作用是,重新启动被停止的容器。-t 为容器重新分配一个伪输入终端,通常与-i同时使用。-d 后台运行容器,并返回容器ID,也即启动守护式容器。使用docker运行名为hello-world的镜像。
2024-11-02 22:19:34 632
原创 django自动创建的表
django_admin_log 用户在 admin 页面上作出的所有修改操作记录日志。django_content_type 追踪项目中所有app和model的对应关系。auth_group_permissions 连接权限分组和能使用权限的表。auth_user_user_permissions 给用户添加、删除权限。auth_user 用户数据模型,存储用户名,密码,超级/普通用户等信息。auth_user_group 连接用户信息表和权限分组表。
2024-11-02 22:17:44 375
原创 django各个文件简单介绍
python的标准库,库都安装在这里面的site-packages文件夹里。存储应用的数据库表结构的指令,models.py 模型类和数据库表之间迁移。下载下来的自己的版本,可以运行,但是代码全部爆红,怀疑和.idea有关。项目的配置文件,在其中修改调整配置,如配置数据库、添加应用。定义了ASGI兼容的web服务器入口,以便运行项目。当引入此目录下文件时,会先执行此文件中的代码。url文件,配置访问服务的url。与父文件名相同的文件夹下的文件。这个目录是虚拟环境的相关文件。编译后的文件夹,不执行则无。
2024-11-02 22:16:39 573
原创 django的一些文件
path('api-docs/', include_docs_urls(title='系统监控-API接口文档')),可以在接口文档页面提示,也可在序列化器模型上加。# 模块coreapi,只针对drf的接口文档。# 在每个类的里面直接加注释,就可以反馈到页面上。'''独立视图集,测试操作所有数据'''help_text='CPU使用率'# 接口文档相关配置。
2024-11-02 22:15:39 360
原创 cookie、session、http简单理解
cookie通过用户密码登陆后,生成一个session 保存在浏览器中,返回sessionid方便会话进行。而sessionid就对应数据库数据这个id,服务器找到对应id的Session实现连接的状态保持。token通过用户密码登陆后,生成token在接口中返回值,在下一次请求中携带。Cookie:以key-value键值对的形式存储一些文本信息数据。数据库中有一个seesion表,存放着所有的Session数据,服务器端验证传递的token和算法生成的token是否一致。是一个令牌,用于用户验证的。
2024-11-02 22:13:55 372
原创 Celery异步任务
# celery命令 worker进程 -A执行的文件:celery_task -l info输出info日志。Worker:执行任务的单元,它实时监控消息队列,如果有任务就获取任务并执行它。任务结果存储:Task result store存储Work执行任务的结果。# print("向%s发送邮件..."%name)# # 导入celery_task中的任务。Task:就是任务,有异步任务和定时任务。# # 名字,数据库存储结果,消息中间件。# # 异步存储结果存储位置。
2024-11-02 22:12:46 299
原创 utf-8、pbkdf2_sha
make_password()的第二位参数为None时,每次产生的加密结果都不一样,# 该加密方法使用的是散列消息,所以加密是不可逆的,# 只能通过校验验证密码加密解密后是否一致,不可解密。# 该种密码在不同时刻会有产生不同的加密结果。#pbkdf2_sha加密,校验。# 当加入任意参数时,既可以相同。#utf-8加密、解密。# 校验加密后是否相同。
2024-11-02 22:11:06 441
原创 APScheduler模块
调度器schedulers:串联任务的整个生命周期,添加编辑任务到任务存储器,在任务的执行时间到来时,把任务交给执行器执行返回结果;# # 方法二:装饰器调用:@sched.scheduled_job('interval', seconds=5) #触发器类型,时间设置。# # 方法一:类函数调用:BlockingScheduler().add_job。# 设置定时任务,选择方式为interval,时间间隔为10s。# # 运行的函数,触发器,触发器时间设置。任务job:任务id和任务执行func。
2024-11-02 22:10:13 281
原创 前后端理解、API接口
API(应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,Content-Type(内容类型),定义网络文件的类型和网页的编码。接口就是预先定义的函数逻辑,他是供其他系统请求,然后返回结果。前后端分离:通过简单的 API 文档进行数据交流,逻辑分离。前后端不分离:通过后端来渲染页面,并指定数据的位置。API:应用程序编程接口:将数据传递给页面。前端:负责显示数据,渲染HTML页面。页面:html:将数据展示在页面上。
2024-11-02 22:09:12 245
原创 MySQL操作命令(Navicat)
select concat('雇员姓名:',ename,'薪资',sal,'职位',job,'入职日期',hiredata,'年薪',sal*13) from emp;(7,'欧文',32,'women','@blilblil.com');(6,'方式',23,'men','@4399.com'),value(4,'发表',02,'women','@7k7k.com'),value(1,'收到',34,'women','@qq.com');sex varchar(1) default'男'
2024-11-02 22:04:19 795
原创 Xshell操作虚拟机
grep -E "(^[^0-9]{2})([0-9]{2})([^0-9]{2}$)" en 首部为非数字、两位;awk -F ':' '{print NR "\t" NF "\t" $0}' passwd -Fl设置列数NR行号NF列数$0全部结果。awk -F'-' '{ print $1 }' lien 文件lien,切割符号为-,输出第一列,-F自定义分隔符。do ((a++));变量,前面加$:a=666,b=(1,2,'sds'),c=(2 3 5),{c[3]}
2024-11-02 22:01:04 939
原创 Linux简单操作命令
ip addr 相当于ifconfig这个用不了,也相当于cmd的ipconfig,sudo apt installnet-tools 用来安装net-tools工具包。IPADDR=192.168 . 91.110 根据自己电脑虚拟机网络编辑给的来设置,不能为0~2,因为都被占用。不同电脑配置网卡配置情况不通过,有eth0的,也有ens33的,使用ip addr来查看其配置的网卡是什么。GATEWAY=192.168. 91.2 查看虚拟机网络,NAT设置的网关,使用相同的配置。
2024-11-02 21:58:03 217
原创 sqlalchemy进阶使用
name = Column('name', String(50), unique=True, comment="姓名")age = Column('age', Integer, unique=True, comment='年龄')以上文本放置在test.py,以此为启动文件,代替app.py默认,只需要把test改成app即可换回默认形式。host = 'localhost' # 例如:'localhost' 或 '127.0.0.1'port = '3306' # 通常是 3306。
2024-10-30 16:40:38 616
原创 简单的更改cmd命令,密码忘记
ren utilman.exe utilman.exe.old #它的意思是将当前目录下的utilman.exe文件重命名为utilman.exe.old。表示备份或标记为已修改。copy cmd.exe utilman.exe #复制cmd中的内容到utilman。shutdowd –r –t 0 #立即重启。
2024-10-29 13:32:26 198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人