繁体   English   中英

无法从 flask 项目中的 __init__.pt 文件导入应用程序以使用 app.config

[英]Can not import app from __init__.pt file in flask project to use app.config

我有一个带有init .py 的 flask 应用程序。 在 create_app function 中,我设置了app.config['UPLOAD_FOLDER']. 我需要将应用程序导入到我的 post.py 文件中,该文件具有将从中上传和下载文件的路线。 我尝试的每种类型的导入都有问题。

初始化.py:

from flask import Flask, session, redirect, url_for
from bson.objectid import ObjectId
from pymongo import MongoClient
from os import path, mkdir
from flask_login import LoginManager

client = MongoClient()
db = client.Contractor 

def create_app():
  app = Flask(__name__)
  app.config['SECRET_KEY'] = '' 
  upload_folder = 'uploads/'
  if not path.exists(upload_folder):
    mkdir(upload_folder)

  from .views import views
  from .auth import auth
  from .post import post

  app.config['MAX_CONTENT_LENGTH'] = 1 * 1024 * 1024
  app.config['UPLOAD_FOLDER'] = upload_folder
  app.register_blueprint(views, url_prefix='/')
  app.register_blueprint(auth, url_prefix='/auth/')
  app.register_blueprint(post, url_prefix='/post/')

  return app

后.py:

from flask import Blueprint, render_template, request, flash, redirect, url_for, session
from datetime import datetime
from werkzeug.security import generate_password_hash, check_password_hash
from werkzeug.utils import secure_filename
from . import db
from bson.objectid import ObjectId
from os import path, mkdir

@post.route('/upload', methods=['GET', 'POST'])
def create_post():
  if 'username' in session:
    current_user = db.users.find_one({ 'username' : session['username']})
    if request.method == 'POST':
      data = request.form 
      photo = request.files['photo']
      print(photo)
 ---->photo.save(path.join(app.config['UPLOAD_FOLDER'], secure_filename(photo.filename)))
      caption = data.get('caption')
      location = data.get('location')

如何从init .py 导入应用程序

我认为您可以在导入 db 的地方导入app

from. import app, db

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM