flask使用模块flask_sqlalchemy来根据前端POST请求实现对本地数据库的增删改查(四)---查

上一篇文章已经讲过改了,这篇文章讲下根据id查询信息:

话不多说,上代码:

rom flask import Flask, flash,request, jsonify

app = Flask(__name__)

# 连接mysql数据库需要导入pymysql模块
import pymysql

pymysql.install_as_MySQLdb()

# 导入SQLAlchemy扩展:通过python对象操作数据库
from flask_sqlalchemy import SQLAlchemy

# #实例化SQLALchemy
# db = SQLAlchemy(app)

# 配置数据库的地址; 协议+用户名:密码@主机IP/数据库名称
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@localhost/flask?charset=utf8'
# 实时跟踪数据库的修改,不建议开启
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

# 实例化SQLALchemy,实例化需要写在配置数据库之后
db = SQLAlchemy(app)


# 定义数据库模型
class need(db.Model):
    # 定义表名
    __tablename__ = 'needs'
    # 定义字段
    # primary_key=True 声明主键  unique=True 值唯一  nullable=False 非空
    # 默认主键(label_id)auto_increment 自增
    need_id = db.Column(db.Integer, primary_key=True, nullable=False)
    title = db.Column(db.String(16),  nullable=False)
    applicant_name = db.Column(db.String(16), nullable=False)
    applicant_number = db.Column(db.Integer, nullable=False)
    department = db.Column(db.String(16), nullable=False)
    business = db.Column(db.String(16), nullable=False)
    systemctl_number = db.Column(db.String(16), nullable=False)
    cause = db.Column(db.String(40), nullable=False)

  
    def to_dict(self):
        return{
            "need_id": self.need_id,
            "title": self.title,
            "applicant_name": self.applicant_name,
            "applicant_number": self.applicant_number,
            "department":self.department,
            "business": self.business,
            "system_number": self.business,
            "cause": self.cause
        }


   #依据需求ID查询需求
@app.route('/query',methods=['GET'])
def query ():
    js = request.get_json()
    Need_id = js['need_id']
    # 查询数据库是否有对应id的需求
    data=[]
    Query=need.query.filter_by(need_id=Need_id).all()
    if Query:
        try:

                for i in Query:
                    QUERY = i.to_dict()
                    data.append(QUERY)
                # Query = i.to_dict()
                # data.append(Query)
                return jsonify({"code": "0000", "data": data,"msg": "请求成功"})
        except Exception as e:
            # 回滚
            db.session.rollback()
    else:
        return jsonify({"code": "0000", "msg": "需求找不到"})



if __name__ == '__main__':
        # 删除所有表
      #db.drop_all()s
      # 创建所有表
    db.create_all()
    app.run(host="192.168.56.99", debug=True,)

进入postman 进行请求参数设定;

注:此处我设定的请求方式为GET;

可以看到我的请求成功的返回值data中包含我要的数据;

 

在本地服务器上查看已经请求成功:

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值