gpt4 book ai didi

python - 我如何使用gunicorn运行这个 flask 应用程序

转载 作者:行者123 更新时间:2023-12-01 06:26:46 24 4
gpt4 key购买 nike

我在编写代码后重构了代码,结果发现这是一个错误,现在我无法使用gunicorn运行它。如果您从这里开始有关于构建或分解的建议,我们也欢迎。我正努力让它从现在开始运行 5 天,挣扎了很多。

目录结构

app--
--db.sqlite
--__init__.py
--models.py
--MyFunctions.py
--routes.py
--schemas.py
--sockets.py
app.py

app.py 内部

from app import *


from app.MyFunctions import *
from app.models import *
from app.schemas import *
from app.routes import *
from app.sockets import *


port=os.environ.get("PORT")

if port is None or port == "":
port = 3000

if __name__ == '__main__':
socketio.run(app, host='0.0.0.0', port=port) # when running on heroku

内部init.py

import jwt
from flask import (
Flask,
request,
jsonify,
make_response,
)
from flask_socketio import (
SocketIO,
send,
emit,
join_room,
leave_room,
)
from sqlalchemy import (
Column,
Integer,
String,
Boolean,
ForeignKey,
DateTime,
Sequence,
Float,
)
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
from os import environ


def debug(msg):
print('\n\n\n'+str(msg)+'\n\n\n'+'\n\nType:\t'+str(type(msg))+'\n\n')

from .models import *
socketio = SocketIO(app, cors_allowed_origins='*')

在 models.py 中(只导入相关的东西而不是模型,我的大部分导入都只在这里)

from flask import (
Flask,
request,
jsonify,
make_response,
redirect,
)
from flask_socketio import (
SocketIO,
send,
emit,
join_room,
leave_room,
)
from sqlalchemy import (
Column,
Integer,
String,
Boolean,
ForeignKey,
DateTime,
Sequence,
Float,
)
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
from flask_bcrypt import Bcrypt
from os import environ
from flask_cors import CORS, cross_origin



app = Flask(__name__)
root = os.path.dirname(os.path.abspath(__file__))
CORS(app, support_credentials=True)
basedir = os.path.abspath(os.path.dirname(__file__))

PG = os.environ.get("DATABASE_URL")

if PG is None or PG=="":
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + \
os.path.join(basedir, 'db.sqlite')
else:
app.config['SQLALCHEMY_DATABASE_URI'] = PG


app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SECRET_KEY'] = environ.get('STRIPE_API_KEY')


db = SQLAlchemy(app)

ma = Marshmallow(app)

bcrypt = Bcrypt(app)

socketio = SocketIO(app, cors_allowed_origins='*')

编辑:目前我仅使用 python 在heroku 上运行应用程序,所以我的 Procfile 看起来像

web: python app.py

是的,我尝试过许多其他格式,例如

web: gunicorn app:app
web: gunicorn models:app
web: gunicorn app/models:app

也尝试过制作不同的运行文件和许多其他方法我担心我需要改变它的结构才能使其工作。

最佳答案

我重命名了我的 app.py 文件,然后它就工作了

Procfile 内部

web: gunicorn gettingstarted.wsgi
web: gunicorn runner:app

关于python - 我如何使用gunicorn运行这个 flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60104007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com