postgresql - 从 Flask-Sql Alchemy 将 JSON 插入 postgresql
问题描述
我想从烧瓶中将 JSON 类型的数据插入 PostgreSQL 数据库
例如: {"a":[1,2,3] , "b":[1,2,3]}
此类数据的一个示例是 Phone.no 和 Childrens,一个人可以有多个 ph.no 和 Childrens
在烧瓶视图中
@app.route('/add', methods=['POST'])
def addRex():
Name = request.form[‘name’]
data = request.get_json(force=False, silent=False, cache=True)
p = Projects(name=name,data = data)
db.session.add(p)
db.session.commit()
在 HTTP post 方法中
def addData():
name = input ('Enter Name :')
data = input('Enter Data :')
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
r = requests.post(localhost:5000/add,
data ={'name':name}, json={'data':data})
if (r.status_code == 200):print(' Added Successfully!!') else:print('Already exists!')
如何将此类数据从烧瓶插入到 postgresql 中。
如果有人可以帮助我解决我的问题。
提前致谢
解决方案
从 sqlalchemy 方言中,您可以为 Postgres 选择 JSON。这是一个例子,
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.dialects.postgresql import JSON
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://username:password@localhost:5432/db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
class Person(db.Model):
person_name = db.Column(db.Text, primary_key=True)
details = db.Column(JSON)
# db.create_all() ==> for creating the db
per_1 = Person(person_name='Batman', details={"phone_no": [5, 6, 7, 8, 9], "children": {"son": [
"Dick Grayson", "Jason Todd", "Damian Wayne", "Tim Drake"], "daughter": ['Helena Wayne']}})
db.session.add(per_1)
db.session.commit()
推荐阅读
- robotframework - 机器人框架、RIDE、关键字错误
- azerothcore - 如何使用“AzerothCore Bash Dashboard”安装新的“Boost”依赖项?
- go - Change value of pointered argument inside a function
- java - How do I keep the program from freezing up?
- javascript - HTML onmousedown 事件在移动设备上不起作用
- r - Keeping only common rows in all groups
- python - How exactly does Python's .replace() works?
- android-layout - Handling GONE views puzzle in ConstraintLayout
- swiftui - SwiftUI: How to update published property of one class (ObservableObject) with published property of a location manager class?
- sql-server - Update trigger with SQL Server