Python
文章平均质量分 73
Python从入门到跑路
邢为栋
这个作者很懒,什么都没留下…
展开
-
常见数据结构简介
常见数据结构有八个,分别是:数组,链表,队列,栈,树,散列表(Hash表),堆,图。下面简单讨论一下。数组数组是一种可以在内存中连续存储多个元素的结构,在内存中的分配的空间也是连续的。数组中的元素通过数组下标来访问,下标从0开始。优点:查询方便,速度快。缺点:数组大小固定后就无法改变了,只能存储一种类型的元素,增删操作慢。适用场景:查询频繁,增删操作比较少。链表链表是在物理存储单...原创 2020-05-05 13:58:11 · 1153 阅读 · 0 评论 -
multipart/form-data类请求没有文件类型导致请求失败
开发了一个上传文件的api服务,框架是fastapi,发现部分操作系统访问api时,返回400错误。经过调查,发现是文件类型判断导致的,因为我在api代码中增加了文件类型判断,只允许上传docx文件。判断逻辑如下:allowed_file_types = [ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document']if file.content_type not in allowed_file_types:原创 2021-11-26 15:45:00 · 1082 阅读 · 0 评论 -
Python Web集成Prometheus
本文分享Python集成Prometheus的方法。主要内容:FastApi/Starlette集成Prometheus通用方法集成PrometheusFastApi/Starlette集成Prometheus使用FastApi开发的Web应用,想要添加监控指标,主流方案是对接Prometheus。寻找解决方案时,发现Starlette有一个中间件 Starlette Prometheus。FastApi继承自Starlette,可以直接使用其中间件。这个中间件的官方文档描述的使用说明是原创 2021-10-14 17:02:28 · 2704 阅读 · 0 评论 -
Mysql版本导致SQLAlchemy contains查询结果不同
问题描述我在开发个人网站时,关于搜索功能的实现本打算使用Elasticsearch,但是奈何机器配置太低,跑不起来,于是退而求其次,使用了SQLAlchemy的contains方法,如下:posts = Post.query.filter(or_(Post.title.contains(g.search_form.q.data), Post.content...原创 2020-04-30 15:09:00 · 883 阅读 · 0 评论 -
Java Integer,Python int和系统最大整数值
问题在使用pyspark运行Spark ALS算法时,发生以下问题:java.lang.IllegalArgumentException: ALS only supports values in Integer range and without fractional part for columns userId and softId. Value 13466056057 was either out of Integer range or contained a fractional part th原创 2020-05-11 16:18:12 · 753 阅读 · 0 评论 -
Python版本环境管理
前言在实际的python开发生产环境中,每个工程项目一般使用的python版本或者环境是不同的,需要一套合适的python版本环境管理工具。接下来是对python版本管理工具的一些理解和简单介绍。工具对比工具简介virtualenv管理同一python版本的不同开发环境,属于python的一个工具包。pyenv管理系统python版本,同一个系统,python...原创 2020-05-06 09:03:55 · 728 阅读 · 0 评论 -
flask+nginx获取用户真实ip
应用使用flask框架开发,使用uswgi启动,使用supervisor管理进程,使用nginx代理服务。flask本身可以通过request.remote_addr获取用户的ip,但是通过nginx代理之后,获取到的是本地地址或者局域网地址。为了在nginx代理的环境下获取用户真实ip,可以通过以下做法实现:nginx 配置 proxy_redirect off; pr...原创 2020-05-05 14:13:16 · 4222 阅读 · 0 评论 -
Json多叉树节点寻址
在一个JSON多叉树中,查找指定节点的根结点路径。Json数据的树形结构的特征是,id是全局唯一的。当然,这是用来标识唯一节点的,必须是唯一的。示例数据如下:{ "id": 1, "name": "一", "children": [ { "id": 2, "name": "二", ...原创 2020-05-05 14:12:05 · 629 阅读 · 0 评论 -
Json多叉树查找算法
从一个多叉树形结构的Json数据中,查找某个元素。Json数据的树形结构的特征是,id是全局唯一的。当然,这是用来标识唯一节点的,必须是唯一的。示例数据如下:{ "id": 1, "name": "一", "children": [ { "id": 2, "name": "二", ...原创 2020-05-05 14:10:16 · 1014 阅读 · 0 评论 -
常见排序算法及Python实现
最近用python练习了一遍常见的排序算法,写成笔记方便以后查阅。这里主要讨论算法思想,不重点讨论算法优化,所以下文的程序逻辑主要体现算法思想。本文涉及到的排序算法有:冒泡排序、选择排序、快速排序、插入排序、堆排序、归并排序以及希尔排序。算法思想与实现冒泡排序算法思想冒泡排序,是对序列进行遍历,遍历过程中如果发现相邻两个元素,满足比较条件,则进行交换,一次遍历之后最大的元素被移动到队尾...原创 2020-05-05 13:56:13 · 174 阅读 · 0 评论 -
Flask表单验证总是返回False
我在开发Flask应用时,使用了Flask-WTF插件,代码逻辑是:在validate_on_submit验证返回False时,页面会返回当前页面。调试的时候,在页面点击提交后,没有反应或者准确说总是返回当前页面。于是在后台打印validate_on_submit返回结果,发现总是返回False,经过查阅资料,发现这个问题可能是CSRF导致的。经过调试,确实是这个问题。解决办法:在模版添加{...原创 2020-04-30 15:56:50 · 475 阅读 · 0 评论 -
爬虫-Scrapy实战二
本项目是 Scrapy实战一 的升级版,仅供学习使用。本项目在 Scrapy实战一 的基础上优化了保存到json的数据格式,并引入 Item Loaders 和 Item Pipeline改变保存到json的数据格式在 Scrapy实战一 中,我们使用以下命令保存数据:scrapy crawl dianying -o items.json这里有一个问题,就是在items.json文件中...原创 2020-04-30 15:48:12 · 206 阅读 · 0 评论 -
爬虫-Scrapy实战一
本项目是 python scrapy 爬虫 练手项目,仅供学习使用。目标获取 电影天堂-最新电影 的所有电影的详情页的url,title和磁力链接magnet。创建项目在开始爬取之前,你必须创建一个新的Scrapy项目。 进入你打算存储代码的目录中,运行下列命令:scrapy startproject dianying该命令将会创建包含下列内容的 tutorial 目录:diany...原创 2020-04-30 15:17:43 · 476 阅读 · 0 评论