python - 我可以在创建后或将数据框导出到 sql 表期间在 sql 表中添加主键约束吗
问题描述
我想使用 pd.read_sql 函数将我的 Excel 数据导入 SQL 数据库。在这里我尝试使用flask sqlalchemy
. 我无法创建表,只能将数据从 Excel 传输到 SQL,因为我的 Excel 文件有 1000 多列。根据我所做的研究,现在我想到了使用 Flask migrate Option 在创建后使用 和 之类的函数进行flask db migrate
更改flask db upgrade
。但没有成功。在创建后或将数据框导出到 SQL 函数期间,我需要关键约束来实现表之间的关系。
此代码用于创建数据库和表:
import pandas as pd
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
#from sqlalchemy.ext.automap import automap_base
#from sqlalchemy.orm import Session
from sqlalchemy import create_engine
df= pd.read_excel(r'C:\Users\z103684\Desktop\new_data.xlsx',sep=';')
df1=df.loc[:, (df != 0).any(axis=0)]
X1 = df1.iloc[0:,0:]
dataset = X1.astype('float32')
dataset['date'] = pd.date_range(start='1/1/2020', periods=len(dataset), freq='D')
dataset=dataset.set_index('date')
dataset.columns = dataset.columns.str.strip().str.lower().str.replace('[', '').str.replace('.', '').str.replace(']','')
dff= pd.read_excel(r'C:\Users\z103684\Desktop\one_column.xlsx',sep=';')
engine = create_engine('sqlite:///Measurements.db')
app=Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI']='sqlite:///Measurements.db'
db=SQLAlchemy(app)
class table1(db.Model):
__tablename__='table1'
dataset.to_sql(con=engine, name='table1', if_exists='replace')
table1.PrimaryKeyConstraint('id')
class table2(db.Model):
__tablename__='table2'
dff.to_sql(con=engine,name='table2',if_exists='replace')
table2.PrimaryKeyConstraint('id1')
@app.route('/')
def index():
return "Hello flask"
if __name__=="__main__":
app.run()
解决方案
推荐阅读
- android - 当我为 ViewGroup 添加视图时,为什么在保留空间键侦听器时,项目的背景是灰色的?
- apache - Apache,无效的 LoadModule mod_auth_basic
- python-3.x - Moosend API 用于 django 中的新订阅者
- javascript - 使用访问级别的正确方法
- php - 如何将缺少的 http:// 添加到字符串中的锚点 - PHP
- xml - 使用 XSLT 对 xml 元素内的内容进行编码
- struts2 - 我正在将我的 Java 项目从 Struts 2.3.15 升级到 2.3.34。我应该做哪些改变?
- mongodb - AWS DynamoDB 是否类似于 MongoDB
- javascript - javascript重定向后显示的查询字符串
- cron - 如何在 linux 中自动化 rsync?