- 博客(42)
- 收藏
- 关注
原创 记录 vue-element登录请求遇到cors跨域错误及解决方法
如下图发生了CORS错误,再看看服务端,是一个简单的flask应用可以看出前端的预请求,options是成功的,但是post请求的时候是失败的,Access to XMLHttpRequest at ‘http://127.0.0.1:5000/user/login’ from origin ‘http://localhost:9527’ has been blocked by CORS policy…解决方法:在服务端增加允许跨域的代码,如下图总结:在服务端增加允许跨域即可。...
2022-03-18 11:36:11 4151
原创 “Defaulting to user installation because normal site-packages is not writeable“
windows安装python3.9.10,一路默认安装下去,安装完成后,cmd窗口输入python确实可以,但是后面发现要创建虚拟环境的时候,pip install virtualenv virtualenvwrapper-win, 提示Defaulting to user installation because normal site-packages is not writeable,意思就是C:\Users\IBM\AppData\Roaming\python39…下面的site-packages
2022-02-10 09:42:56 44044 2
原创 flask sqlalchemy查询多个不确定条件
如下图:用户手机号,策略类型等等都是可选,有可能只筛选一个或多个条件,这时候是不能用枚举法去写代码的,这样太多了。然后开始找答案,有人是这样说的:链接然后照着做了,然后就是在filter_by的时候把引号去掉然后,报错了。。如果是直接写进去就不会报错,也就是直接.filter_by(phone=13012345678,api_type=4001), 这样就不会报错,真是百思不得其解最后其实很简单,就是用sqlalchemy的**or_**即可,把所有的条件的都写进去,它会帮我们筛选出有值
2021-12-09 19:22:34 2455 6
原创 正则获取小数点后面的小数位
需求,获取小数点后面的小数位,如下:‘0.001’ --> 3位, ‘0.00010’ --> 4位,‘1.0’ --> 0位,‘0.1’ --> 1位 。。。def get_amount_precision(stepSize): try: if float(stepSize) >= 1: return 0 elif float(stepSize) >= 0.1: return
2021-08-23 11:04:59 777
原创 flask项目多进程出现 ‘Broken pipe’ “Command out of sync” ”gone away“等问题及解决
最近的项目需求是对量化策略进行回测,由于是cpu密集型操作,由于python GIL锁机制,使用多线程不适合,协程的话也不能。因此考虑多进程,代码里开的进程池只要是2及2以上,一定会出现 ‘Broken pipe’ “Command out of sync” ”gone away"等问题,由于涉及到与mysql数据库的ORM操作,上网查找这个(pymysql.err.OperationalError) (2006, “MySQL server has gone away (BrokenPipeError(
2021-08-02 19:56:18 979
原创 (pymysql.err.OperationalError) (2006, “MySQL server has gone away (BrokenPipeError(32, ‘Broken pipe‘
flask 项目运行了一段时间,mysql报错 (pymysql.err.OperationalError) (2006, “MySQL server has gone away (BrokenPipeError(32, ‘Broken pipe’))”),根据查询资料 https://dev.mysql.com/doc/refman/5.7/en/gone-away.html,原因是服务器超时并关闭了连接,所以再去操作的时候就连接不上了。根据官方说法,我们可以设置wait_timeout时间长一点,通
2021-06-15 12:36:12 1920
原创 flask orm 查询多张无关联的表
如图,由于网格量化,抄底策略,合约策略等等,不在同一张数据表里,它们都是各自互不关联的表,如何按照时间倒叙排序呢,这里用到 union_all 这个用法,代码如下:result1 = db.session.query(BottomStrategy.id, BottomStrategy.strategy_type,BottomStrategy.status, BottomStrategy.strategy_name, B.
2021-06-10 09:40:28 247
原创 flask 后台新增或修改交易币对触发自动获取各个平台的交易对价格
需求:当后台新增或修改交易币对时,触发自动获取各个平台的交易对价格如下图,在flask视图中新增或者修改了交易币对,就调用restart_get_new_price()这个函数即可def get_process_id(name): import subprocess child = subprocess.Popen(["pgrep", "-f", name], stdout=subprocess.PIPE, shell=False) response = child.comm
2021-05-12 16:28:07 132
原创 python将重要信息中间字符串替换成 * 号
a = 'g6j6XK9TPrIOtw21gwFRcPqWOHC7jB9jRmfV7kQ5tkzikbSDnS8vp7bDHgzz0L3b'a = a.replace(a[10:-10],'*'*len(a[10:-10]))print(a) # --> g6j6XK9TPr********************************************bDHgzz0L3b
2021-05-10 11:37:49 2415
原创 flask sqlachemy 查询 先分组再排序
需求:根据交易币对,回测时间提取出年化收益率最高的出来,放到最优策略参数那里,如下图效果如下图:我心想,这还不简单,先来个group_by 交易币对,回测时间,再来个order_by 年化收益率,分分钟搞出来,事实证明,我有点年轻,先看这样写的效果best_param = db.session.query(BottomBacktestStrategy).group_by(BottomBacktestStrategy.symbol,
2021-05-08 10:13:34 853 3
原创 对接币安接口的心得体会
主要是报 You are not authorized to execute this request或者{“code”:-1022,“msg”:“Signature for this request is not valid.”},反正就是signature整的不对,直接上代码import hashlibimport hmacimport timeimport requestsurl = "https://api.binance.com/sapi/v1/capital/config/get
2021-04-26 20:54:42 4043 5
原创 flask orm 查询2个时间段内的值
from datetime import datetimestart_time = datetime(2021,4,10,0,0,1) # 指的是2021/4/10 00:00:01end_time = datetime(2021,4,10,1,1,1)datas = HistoryTrades.query.filter(start_time <= HistoryTrades.create_time_stamp,HistoryTrades.create_time_stamp <= end_
2021-04-14 20:05:39 798
原创 Postman Collection Format v1 is no longer supported and can not be imported directly. You may conver
1 invalid import format(s)Postman Collection Format v1 is no longer supported and can not be imported directly. You may convert your collection to Format v2and try importing again.如图,导入json数据到postman的时候报错原因是我的gtrading.json格式是v1版本,postman已经不再支持了,需要转成v2
2021-03-29 14:09:10 4454
原创 AttributeError: module ‘sqlalchemy‘ has no attribute ‘NullType‘
flask框架在执行数据库迁移命令migrate之后upgrade,报这个错,将这个表删掉再从头开始迁移数据库即可,先删掉migrations目录,再依次init, migrate,upgrade
2021-03-11 18:07:33 3926 1
原创 python 2个列表相减的2种写法
list1 = [1, 2, 3, 4, 5, 6]list2 = [1, 3, 4, 5]第一种list3 = [item for item in list1 if item not in set(list2)]print(list3) # [2, 6]第二种print(set(list1) - set(list2)) # {2, 6}
2021-01-11 09:22:26 26120 3
原创 python利用pdfplumber模块提取pdf表格信息存入excel
步骤1遍历当前文件夹获取当前pdf文件# 这是返回文件的绝对路径写法PATH = lambda p: os.path.abspath( os.path.join(os.path.dirname(__file__), p))document_path = PATH('./')list1 = []for file in os.listdir(document_path): if file.endswith(".pdf"): if file not in list1:
2021-01-10 10:32:10 1118 3
原创 统计当前文件夹下面的excel的指定sheet的字符数
1.遍历取出excel文件,由于结果文件定的是count_characters_xxxx.xlsx,所以结果文件也不加进来PATH = lambda p: os.path.abspath( os.path.join(os.path.dirname(__file__), p))list1 = []for file in os.listdir(document_path): if file.endswith("xlsx") or file.endswith("xls"):
2021-01-06 15:29:23 160
原创 解决flask报错:RuntimeError: Working outside of application context.
先看报错:RuntimeError: Working outside of application context.This typically means that you attempted to use functionality thatneeded to interface with the current application object in some way.To solve this, set up an application context with app.app_con
2021-01-04 14:31:14 19713 3
原创 win10禁用Ctrl+Alt+向左箭头等快捷键
win10的某些快捷键会与idea的快捷键冲突,例如Ctrl+Alt+向左/右/上/下箭头,解决方法如下图
2020-09-18 20:35:27 1110
原创 pandas 行、列的增删改查
读取tips.xlsx及预览内容行的增删改查增加行直接赋值df.loc[40] = [1,2,3,4,5,6,7]append方法# append 增加行的方法,设置ignore_index参数df1 = dfdf1 = df1.append(df,ignore_index=True)df1concat方法# concat连接 会保留原来的行索引,需设置ignore_indexdf2 = dfdf3 = pd.concat([df,df2],ignore_index=Tr
2020-07-14 21:05:01 387
原创 设置flask启动ip与端口
如果是简单的app.runapp.run(debug=True,host='1.2.3.4',port=5003)如果是create_app创建的app,则python manage.py runserver -h 127.0.0.1 -p 8090
2020-07-14 17:48:02 11656 2
转载 windows下创建python虚拟环境
参考:https://www.cnblogs.com/chenpython123/p/11517070.html只需3步简单创建虚拟环境pip install virtualenv和virtualenvwrapper-win先找个位置创建一个文件夹virenv专门放虚拟环境的,cmd打开,cd到你刚创建的文件夹,输入命令: mkvirtualenv 虚拟环境名字(比如py3_flask),创建成功了,此时你会看到当前文件夹下出现了py3_flask的虚拟包,workon直接查看已经创建的
2020-07-14 17:34:40 158
原创 win32处理加密Excel
win32com调用的是VBA接口,VBA编程的强大功能是,几乎可以使用鼠标,键盘或对话框执行的所有操作也可以通过使用VBA自动化官方中文文档:https://docs.microsoft.com/zh-cn/office/vba/api/excel.workbook# 创建一个Excel进程xlApp = win32com.client.Dispatch('Excel.Application')# 设置为后台运行xlApp.Visible = False# 打开excel文件,如果有密码,则需
2020-07-14 17:22:07 703
原创 python遍历某目录下的Excel文件,pandas遍历每个Excel文件的sheet
import osimport pandas as pd# 遍历某目录下的Excel文件名字,加入列表list1 = []for file in os.listdir(document_path): if file.endswith("xlsx") or file.endswith("xls"): list1.append(file)list1 列表大概是这样[‘a.xlsx’,‘b.xlsx’,‘c.xls’…],接下来可以用相对路径或绝对路径读取#
2020-07-13 11:38:52 7420
原创 pandas读写Excel文件的3种方法介绍
pandas读写Excel文件的3种方法直接读取与保存###pandas 最新版是sheet_namedf = pd.read_excel(’./tips.xlsx’,sheetname=‘test1’)df.to_excel(‘tips2.xlsx’)新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdow
2020-07-13 11:04:17 5403 1
原创 pandas对某一行的几列进行求和
pandas对某一行的几列进行求和如图所示,我需要对每一行的YTD 进行求和,从wk1,wk2,一直加到最后,excel公式是=SUM(H2:BT2);我用pandas的做法如下:代码如下,仅供参考哈。#定义一个带参数的函数def sum_ytd(row,number):s=0#df2.shape1是获取列数,7的意思是从WK1开始for i in range(7,df2.sh...
2019-11-28 18:28:35 8179 4
原创 云服务器安装mysql数据库及登录
用腾讯云服务器安装mysql走过的弯路,现在总结如下:1.安装sudo apt-get install mysql-server2.登录。由于需要密码,在网上看了很多教程,始终找不到,最后终于用root权限无密码登录sudo su 切换至root权限mysql -uroot -p 回车回车即可登录3. 改密码use mysql;update user set authenticat...
2019-10-15 15:35:22 239
原创 module 'pandas' has no attribute 'scatter_matrix'
运行pandas.scatter_matrix两两散点图的时候报错奇怪,大家明明都是这么用pd.scatter_matrix,后来通过查找pandas文档,发现现在的pandas的scatter_matrix用法已经发生变化了,变成了pandas.plotting.scatter_matrix参考资料:http://pandas.pydata.org/pandas-docs/stable/...
2019-05-11 17:17:46 10740 5
翻译 pandas DataFrame的xs用法
xs用于多重索引中,先创立一个二级行索引的dataframe,如下图np.arrays = [[‘one’,‘one’,‘one’,‘two’,‘two’,‘two’],[1,2,3,1,2,3]]df = pd.DataFrame(np.random.randn(6,2),index=pd.MultiIndex.from_tuples(list(zip(*np.arrays))),colum...
2019-05-10 02:38:19 6681 1
原创 redis list类型之lrem删除元素
从mylist中删除全部等值value的元素 0为全部,负值为从尾部开始。在redis中的有5中数据类型,分别是sting,hash,list,set,zset,其中list类型的删除元素和python的list不也一样,因为redis中的list的没有删除指定下标的用法,其中lrem删除方法看了一些注释,如下:lrem : lrem mylist 0 “value” 从mylist中删除...
2019-05-07 22:49:40 7223 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人