我是python和postgres的新手,我正在尝试构建一个简单的烧瓶网络应用程序。 用户可以选择一个csv文件,按上传,它将在我的服务器上使用csv中的表在postgres中创建一个表。 一个简单的复制粘贴。
我的HTML代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>upload</title>
</head>
<body>
<form method="POST" enctype=multipart/form-data action ="\upload">
<input type="file" name="user_file">
<input type="submit">
</form>
</body>
</html>
我的python模块:
from flask import Flask, render_template, send_file, request
import pandas as pd
import csv
import sqlalchemy as sa
app = Flask(__name__)
@app.route("/upload", methods = ['GET', 'POST'])
def upload():
if request.method == 'POST' and 'user_file' in request.files:
csvfile = request.files['user_file']
con=sa.create_engine('postgresql://user:password@localhost/dbname')
chunks = pd.read_csv(csvfile, chunksize=100000)
for chunk in chunks:
chunk.to_sql(name='table', if_exist='append', con=con)
return render_template('new.html')
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True)
当我尝试创建一个到postgres服务器的连接字符串,创建一个表,并将csv复制到它,我得到一个网页: 的 sqlalchemy.exc.OperationalError OperationalError:(psycopg2.OperationalError)无法连接到服务器:连接超时 服务器是否在主机上运行&#34; __ localhost _&#34;并接受 端口5432上的TCP / IP连接? (关于此错误的背景:http://sqlalche.me/e/e3q8)
尝试在网上找到答案但没有运气。 非常感谢您的帮助,谢谢!