究竟是通过threaded = True对app.run()吗?
我的应用程序处理来自用户的输入,并花费一些时间来完成.在此期间,应用程序无法处理其他请求.我已经测试了我的应用程序,threaded=True它允许我同时处理多个请求.
这可能是一个很长的镜头,但这是我得到的错误:
File "/home/MY NAME/anaconda/lib/python2.7/SocketServer.py", line 596, in process_request_thread
self.finish_request(request, client_address)
File "/home/MY NAME/anaconda/lib/python2.7/SocketServer.py", line 331, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/home/MY NAME/anaconda/lib/python2.7/SocketServer.py", line 654, in __init__
self.finish()
File "/home/MY NAME/anaconda/lib/python2.7/SocketServer.py", line 713, in finish
self.wfile.close()
File "/home/MY NAME/anaconda/lib/python2.7/socket.py", line 283, in close
self.flush()
File "/home/MY NAME/anaconda/lib/python2.7/socket.py", line 307, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
Run Code Online (Sandbox Code Playgroud)
我已经构建了一个Flask应用程序,它将地址作为输入并执行一些字符串格式化,操作等,然后将它们发送Bing Maps到地理编码(通过geopy外部模块).
我正在使用此应用程序来清理非常大的数据集.该应用程序适用于通常约1,500个地址的输入(每行输入1个).我的意思是它将处理地址并将其发送Bing Maps到地理编码然后返回.在大约1,500个地址之后,应用程序变得没有响应.如果这是在我工作时发生的,我的代理人告诉我有一个tcp error.如果我在非工作计算机上,它只是不加载页面.如果我重新启动应用程序,那么它的功能非常好.因此,我被迫用大约1,000个地址批量运行我的程序(只是为了安全,因为我还不确定程序崩溃的确切数字).
有谁知道可能导致它的原因是什么?
我正在思考一些与我一起达到当天Bing API密钥限制(即30,000)的内容,但这并不准确,因为我每天很少使用超过15,000个请求.
我的第二个想法是,也许是因为我仍在使用标准的烧瓶服务器来运行我的应用程序.会改用gunicorn还是uWSGI解决这个问题? …
我正在尝试通过Flask-SQLAlchemy连接到本地MSSQL DB.
这是我__init__.py文件的代码摘录:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mssql+pyodbc://HARRISONS-THINK/LendApp'
db = SQLAlchemy(app)
SQLALCHEMY_TRACK_MODIFICATIONS = False
Run Code Online (Sandbox Code Playgroud)
正如您在SQL Server Management Studio中看到的,此信息似乎匹配:
这是在我的models.py文件中创建一个简单的表:
from LendApp import db
class Transaction(db.model):
transactionID = db.Column(db.Integer, primary_key=True)
amount = db.Column(db.Integer)
sender = db.Column(db.String(80))
receiver = db.Column(db.String(80))
def __repr__(self):
return 'Transaction ID: {}'.format(self.transactionID)
Run Code Online (Sandbox Code Playgroud)
然后,我通过执行这两行,使用Pycharm中的Python控制台连接到数据库:
>>> from LendApp import db
>>> db.create_all()
Run Code Online (Sandbox Code Playgroud)
这导致以下错误:
DBAPIError: (pyodbc.Error) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no …Run Code Online (Sandbox Code Playgroud) 我在Excel工作表中隐藏了一堆列.我收到了这个错误:AttributeError: can't set attribute从这一行开始worksheet.column_dimensions['B'].visible = False
对不起,如果这是一个超级简单的问题.我刚刚更新到Openpyxl/Pandas的新版本,所以我现在必须通过我的代码并进行更改以适应新版本的文档.
worksheet.column_dimensions['B'].visible = False
worksheet.column_dimensions['D'].visible = False
worksheet.column_dimensions['E'].visible = False
worksheet.column_dimensions['F'].visible = False
worksheet.column_dimensions['G'].visible = False
worksheet.column_dimensions['H'].visible = False
worksheet.column_dimensions['I'].visible = False
worksheet.column_dimensions['K'].visible = False
worksheet.column_dimensions['L'].visible = False
worksheet.column_dimensions['M'].visible = False
worksheet.column_dimensions['N'].visible = False
worksheet.column_dimensions['O'].visible = False
worksheet.column_dimensions['P'].visible = False
worksheet.column_dimensions['Q'].visible = False
worksheet.column_dimensions['R'].visible = False
worksheet.column_dimensions['S'].visible = False
worksheet.column_dimensions['T'].visible = False
worksheet.column_dimensions['U'].visible = False
worksheet.column_dimensions['V'].visible = False
worksheet.column_dimensions['W'].visible = False
worksheet.column_dimensions['X'].visible = False
worksheet.column_dimensions['Y'].visible = False
worksheet.column_dimensions['Z'].visible = False
worksheet.column_dimensions['AA'].visible …Run Code Online (Sandbox Code Playgroud) 我写了一个烧瓶应用程序,将用于处理一些 excel 文件,但是,我为 .xlsx 文件编写了它。输入的文件可能是 .xls 文件,我知道 Openpyxl 无法打开。在我的应用程序中使用 Openpyxl 处理文件之前,如何将文件转换为 .xlsx?
我在网上看到了一些关于使用 xlrd 将原始 .xls 写入 Openpyxl 可以处理的 .xlsx 文件的内容,但是我在调整它以适合我的特定应用程序时遇到了麻烦。
提前致谢!
from openpyxl import load_workbook
from openpyxl.styles import Style, Font
from flask import Flask, request, render_template, redirect, url_for, send_file
import os
app = Flask(__name__)
@app.route('/')
def index():
return """<center><body bgcolor="#FACC2E">
<h1><p>Automated TDX Report</h1></p><br>
<form action="/upload" method=post enctype=multipart/form-data>
<p><input type=file name=file>
<input type=submit value=Upload>
</form></center></body>"""
@app.route('/upload', methods = ['GET', 'POST'])
def upload():
if request.method == 'POST':
f = request.files['file']
f.save(f.filename) …Run Code Online (Sandbox Code Playgroud) 我目前有这一行将address = re.sub('[^A-Za-z0-9]+', ' ', address).lstrip()删除我的字符串中的所有特殊字符address.如何修改此行以保持#?
如何剥离一些数字?当然,这必须适用于任何数字,而不仅仅是1.
我想blahblahblah 1 main street 作为输入.并1 main street作为输出.
我正在创建一个Flask应用程序,该应用程序提示用户输入Excel文件,对其进行一些处理,然后将文件返回给用户,以便他们下载。(请忽略任何未使用的导入。我计划稍后使用它们。)
我的功能降低了,我不确定如何将文件发送回用户以便他们下载。在此先感谢您的帮助!
到目前为止,这里是:(注意:我不太确定我是否正确实现了上传功能)
from openpyxl import load_workbook
from flask import Flask, request, render_template, redirect, url_for
app = Flask(__name__)
@app.route('/')
def index():
return """<title>Upload new File</title>
<h1>Upload new File</h1>
<form action="/uploader" method=post enctype=multipart/form-data>
<p><input type=file name=file>
<input type=submit value=Upload>
</form>"""
@app.route('/uploader', methods = ['GET', 'POST'])
def upload():
if request.method == 'POST':
f = request.files['file']
f.save(f.filename)
return process(f.filename)
def process(filename):
routename = ['ZYAA', 'ZYBB', 'ZYCC']
supervisors = ['X', 'Y', 'Z']
workbook = load_workbook(filename)
worksheet = workbook.active
worksheet.column_dimensions.group('A', 'B', hidden=True)
routes = worksheet.columns[2] …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我创建的数据透视表发送到工作簿中的新工作表上,但是,出于某种原因,当我执行我的代码时,会使用数据透视表(工作表称为“Sheet1”)和数据创建一个新工作表工作表被删除。
这是我的代码:
worksheet2 = workbook.create_sheet()
worksheet2.title = 'Sheet1'
worksheet2 = workbook.active
workbook.save(filename)
excel = pd.ExcelFile(filename)
df = pd.read_excel(filename, usecols=['Product Description', 'Supervisor'])
table1 = df[['Product Description', 'Supervisor']].pivot_table(index='Supervisor', columns='Product Description', aggfunc=len, fill_value=0, margins=True, margins_name='Grand Total')
print table1
writer = pd.ExcelWriter(filename, engine='xlsxwriter')
table1.to_excel(writer, sheet_name='Sheet1')
workbook.save(filename)
writer.save()
Run Code Online (Sandbox Code Playgroud)
另外,我的数据透视表设计有点麻烦。下面是数据透视表的样子:
如何在总结每一行的末尾添加一列?像这样:(我只需要最后的列,我不在乎像那样格式化它或其他任何东西)