Flask-PyMongo-init_app()缺少1个必需的位置参数:"app" [英] Flask-PyMongo - init_app() missing 1 required positional argument: 'app'

查看:330
本文介绍了Flask-PyMongo-init_app()缺少1个必需的位置参数:"app"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用flask-pymongo初始化我的数据库.

i am trying to initialise my db using flask-pymongo.

但是我收到以下错误消息,

But i get the following error,

文件中的文件"run.py",第22行 app = create_app("config")
create_app
中的文件"run.py",第11行 mongo.init_app(app)
TypeError:init_app()缺少1个必需的位置参数:"app"

File "run.py", line 22, in
app = create_app("config")
File "run.py", line 11, in create_app
mongo.init_app(app)
TypeError: init_app() missing 1 required positional argument: 'app'

run.py

from flask import Flask
from app import api_bp
from db import mongo

def create_app(config_filename):

    app = Flask(__name__)
    app.config.from_object(config_filename)
    app.register_blueprint(api_bp, url_prefix='/api')

    mongo.init_app(app)

    return app

# def logger():


# def database():


if __name__ == "__main__":
    app = create_app("config")
    app.run(host='0.0.0.0', port=8080, debug=True)

db.py

from flask_pymongo import PyMongo

mongo = PyMongo

config.py

DEBUG = True
SECRET_KEY = "secret"
MONGO_URI = "mongodb://localhost:27017/api"

app/__ init __.py

import os
import json
import datetime
from flask import Blueprint
from flask import jsonify
from flask_restful import Api
from .users.resource import UsersResource

api_bp = Blueprint('api', __name__)
api = Api(api_bp)


api.add_resource(UsersResource, '/users')

app/users/resource.py

我希望他们将mongo导入此资源,以便我可以访问用户集合.

I want to them import the mongo to this resource so i can access the users collection.

from flask_restful import Resource
from flask import jsonify
from .repository import UsersRepository

class UsersResource(Resource):

    def __init__(self):

        self.repository = UsersRepository()

    def get(self):

        data = {"Users": "Resource"}
        res = data, 200
        return res

我正在尝试使用Flask-restful和flask-pymongo用资源设置一个Restful api.欢迎提出任何其他改进我的方法的建议.

I am trying to setup a restful api with resources using Flask-restful and flask-pymongo. Any other suggestions to improve my approach is welcome.

推荐答案

您没有在db.py中实例化PyMongo类.

You didn't instantiate the PyMongo class in db.py.

mongo = PyMongo()

这篇关于Flask-PyMongo-init_app()缺少1个必需的位置参数:"app"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆