python flask-sqlalchemy flask-marshmallow基本使用

article/2025/10/31 4:59:16

首先安装
pip install marshmallow-sqlalchemy
pip install flask-sqlalchemy
pip install flask-marshmallow
参考
sqlalchemy query 官网
app.py文件内容

from flask import Flask,jsonify
import config
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
from flask_restful import Api,request
app=Flask(__name__)
app.config.from_object(config)
api=Api(app)
db=SQLAlchemy(app)
ma=Marshmallow(app)
class test(db.Model):id = db.Column(db.Integer,primary_key=True)name = db.Column(db.String(24))age=db.Column(db.Integer)money=db.relationship('moneys',uselist=False)  #class moneys(db.Model):id = db.Column(db.Integer,db.ForeignKey('test.id'))money = db.Column(db.String(),primary_key=True)class UserSchema(ma.ModelSchema):class Meta:model = testclass MoneySchema(ma.ModelSchema):class Meta:model = moneys@app.route('/')
def index():one_user = test.query.all()user_schema = UserSchema(many=True) #用已继承ma.ModelSchema类的自定制类生成序列化类print(one_user)output = user_schema.dumps(one_user) #生成可序列化对象return output@app.route("/test", methods=["POST"])
def add_user():user_schema = UserSchema(many=False)ss=user_schema.load(request.get_json(force=True))print (ss)db.session.add(ss)db.session.commit()return user_schema.dump(test.query.filter(test.id==request.json['id']).first())if __name__ == '__main__':app.run(debug=True)

config.py 文件内容

DIALECT = 'postgresql'
DRIVER = 'psycopg2'
USERNAME = 'chenxu'
PASSWORD = 'postgres'
HOST = '127.0.0.1'
PORT = '5432'
DATABASE = 'chenxu'SQLALCHEMY_DATABASE_URI = "{}://{}:{}@{}:{}/{}".format(DIALECT,USERNAME, PASSWORD, HOST, PORT,DATABASE)

表结构如下
moneys
在这里插入图片描述
test
在这里插入图片描述


http://chatgpt.dhexx.cn/article/r7CM6KqU.shtml

相关文章

Flask_使用flask_marshmallow序列化数据

代码如下: from flask import Flask from flask_marshmallow import Marshmallow from flask_sqlalchemy import SQLAlchemy from marshmallow import fieldsapp Flask(__name__) app.config["SQLALCHEMY_DATABASE_URI"] "mysqlpymysql://root:12…

【Python】Marshmallow:Python中的“棉花糖”

博主:👍不许代码码上红 欢迎:🐋点赞、收藏、关注、评论。 文章目录 一、Marshmallow简介1.1、基础概念 二、序列化2.1、User类2.2、UserSchema类2.3、Serializing(序列化)2.4、运行2.5、过滤输出 三、反序列化四、验证数据4.1、V…

marshmallow——简介

一、marshmallow简介 在marshmallow诞生之前,已经有很多优秀的模块来用于数据的格式化和数据校验中。 因此书写mashmallow这个库的作者受这些库的启发,例如Django REST Framework, Flask-RESTful, 和colander这些。他同样从这些库中大量借用了设计和实现序列化、反序列化以及…

flask---》Marshmallow介绍及基础使用

0. Marshmallow背景介绍 介绍 Marshmallow,中文译作:棉花糖。是一个轻量级的数据格式转换的模块,也叫序列化和反序列化模块,常用于将复杂的orm模型对象与python原生数据类型之间相互转换。一般用于flaskmarshmallow提供了丰富的…

YApi接口平台-接口挡板

YApi是一个开源的平台,官方平台链接,如下https://hellosean1025.github.io/yapi/index.html,目前很多大公司在使用,主要优势我认为有2个,第一该平台开源,搭建方便;第二该平台解决了前后端分离开发的痛点&am…

open source HTML 5移动应用 -Exlive 人员定位客户端(BlackBerry 10, Android, iPhone)

下图是exlive人员定位系统的宣传页,其官方主站在这里 www.exlive.cn 下图是BlackBerry OS 7.0上面的运行效果,更多截图见这里 http://blog.csdn.net/berryreload/article/details/8099674 Update: Remove BlackBerry OS 7.0支持 升级到PhoneGap 3.0&…

My BlackBerry

什么是黑莓 RIM公司成立于1984年。 黑莓手机(Blackberry),是指由加拿大Reserach In Motion(RIM)公司推出的一种无线手持邮件解决终端设备,也就是我们平时称的手机。 2013年1月30日,RIM公司今…

解决联网下载服务端返回405问题

最近遇到了一个问题,在项目中有一个启动页广告图片下载的功能,之前能够正常下载,由于这个版本遇到了运营商DNS劫持的问题,服务端要调整图片的下载路径,也就是改变了图片的链接地址。修改地址之后下载就出现异常了&…

IIS 405 Method Not Allowed

今天将项目发布到IIS上后,发现Delete方法用不了,可进行如下设置: 打开处理程序映射 找到WebDAV点击请求限制,勾选全部谓词 这个方法如果无效的话 方法二:因为是WebDAVModule限制的请求,所以直接将WebDAV…

前端请求接口时报405错误

他说方法不存在 他的问题所在就是没有找到后端对应的接口 意思就是说没有找到我后端put这个对应的接口 我记得写了不知道为啥没了纳闷

IIS put请求 报HTTP Error 405 - Method Not Allowed

在新的服务器上部署了一个.net core的项目,部分请求地址使用了put、delete方式,导致无法正常请求,报Error 405 - Method Not Allowed。 由于配置IIS时把“WebDAV 发布”给勾选了,所以会导致拦截。 服务器和IIS 10配置如下图&…

405 Method Not Allowed 解决方案

背景描述 前端发送请求到后端,可是经过swagger测试,后端接口是没问题的 可是一旦调用就发生405报错 解决方案 一般这种情况发生是因为前后端请求方式不一致 写在前端的接口声明方式是post 我们来看后端 很明显了,后端是get,因…

405 Method Not Allowed(亲测,实用)

今天在发布一个网站的时候遇到 标题上的问题,一直不明白是为何,刚开始以为是我的程序写的有问题,随即将项目发给同事来发布试试,在他的IIS上发布却没出现问题,一切正常,这可就怪了,于是想到了应…

宝塔面板数据库出现405 Not Allowed 错误的原因和解决办法

我们在网站建设和网站维护过程中,除了云服务器需要小心维护之外,还要应对突然出现的一些问题,比如今天网站突然打不开了,根据页面提示,貌似是数据库的原因,于是登录宝塔面板,想要看看数据库怎么…

浏览器页面报错405!

首先看浏览器的报错页面 后端控制台正常 可以明显的看出是因为我们提交的method是不被允许的,这就说明是我们的 请求方式的问题,常见的请求方式有 post,get.大家如果不知道自己默认的请求方式是get或者post,我们可以在继承HttpServlet的时候继承doGet(),…

html405是什么错误,网站打开显示405错误信息如何解决?

当我们打开网页时候,会显示404,405,500等报错信息,下面海站格给大家介绍常见的405报错时的处理方法: IIS 返回 405 - 不允许用于访问此页的 HTTP 谓词。终极解决办法!!!! 1、为什么会出现这个错误? 我们可以理解为在当前IIS服务器上&#xf…

一款ModbusRTU/TCP485串口协议调试软件工具绿色版免安装

软件的界面如下: 支持modbus设备的读写操作,把设备地址、功能码、寄存器地址、寄存器个数都显示出来了,浅析易懂,很适合初学者和工程师对modbus设备进行调试、测试。 一款好用的modbus调试大师助手软件工具操作演示,…

“405”报错解决方案

405是什么意思? 意思如下: “405”经常作为“Method Not Allowed”的缩写来使用,中文中表示:“不允许的方法”。 英文缩写词:405 英文单词:Method Not Allowed 缩写词分类:Internet 缩写词…

2.Modbus通信协议-软件调试4个工具软件(推荐)

Modbus通信协议-软件调试的4个工具软件 1.Launch Virtual Serial Port Driver 2.Modbus Poll 3.Modbus Slave 4.UartAssist 软件下载 以下为官网下载链接: Virtual Serial Port Driver Modbus Slave和Modbus Poll UartAssist 1.Virtual Serial Port Driver …