【问题标题】:Importing class from another directory to Flask App routes/views将类从另一个目录导入到 Flask App 路由/视图
【发布时间】:2019-05-09 17:46:31
【问题描述】:

我有一个烧瓶应用程序,我使用下面的方法将我编写的模块导入到 forms.py 文件中,它似乎可以工作。

sys.path.append('/home/user/lib/')
from mymodule import *

但是,当我尝试将其导入到我的 routes.py 文件中时,它会失败。当我重新启动我的 WSGI apache 服务器时,它不会加载,不幸的是,由于某种原因,我没有得到任何说明原因的日志。

下面是我的应用程序的布局。

flaskapp
├── config.py
├── forms.py
├── flaskapp.wsgi
├── __init__.py
├── routes.py
├── static
│   ├── search.js
│   └── sort.js
└── templates
    ├── base.html
    ├── certs_view.html
    ├── results.html
    ├── index.html
    ├── new_org.html
    ├── submit_csr.html
    └── upload.html

我尝试了追加和插入方法来尝试导入模块,但没有成功。我什至创建了一个符号链接来尝试这种方式,但是一旦我尝试将其导入到 routes.py 中,WSGI 服务器就不会加载。

初始化.py

from flask import Flask
app = Flask(__name__)
import flaskapp.routes
import flaskapp.config
import flaskapp.forms
from flask_bootstrap import Bootstrap
from flaskapp.forms import RequestCSRForm
from flaskapp.forms import SubmitForm
from flaskapp.forms import UploadCertificate
from flaskapp.forms import CreateNewOrg
#from mymodule import *
bootstrap = Bootstrap(app)
app.config['SECRET_KEY'] = ''
app.config.from_object(config)
...

config.py

import os
from flaskapp import app
...

!这个有效! forms.py

import sys, json
from flaskapp import app
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, BooleanField, SubmitField, TextAreaField, SelectField
from wtforms.validators import DataRequired
sys.path.append('/home/user/lib/')
from mymodule import *
...

!这个不行! 路线.py

import os, datetime, json, time, OpenSSL.crypto
from flaskapp import app
from flask import render_template, Flask, redirect, url_for, flash
from flask_bootstrap import Bootstrap
from flaskapp.forms import RequestCSRForm
from flaskapp.forms import SubmitForm
from flaskapp.forms import UploadCertificate
from flaskapp.forms import CreateNewOrg
from OpenSSL.crypto import load_certificate_request, FILETYPE_PEM
sys.path.append('/home/user/lib')
from mymodule import *
...

我希望能够从 routes.py 中调用 mymodule 中的函数,或者理想中的所有函数...

【问题讨论】:

    标签: python-3.x flask wsgi


    【解决方案1】:

    为什么不为你的模块创建一个设置,然后在你的flaskapp的venv中创建pip install mymodule

    https://packaging.python.org/tutorials/packaging-projects/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      相关资源
      最近更新 更多