gpt4 book ai didi

python - 如何设置 gunicorn 来查找 flask 应用程序?

转载 作者:太空狗 更新时间:2023-10-29 23:58:14 28 4
gpt4 key购买 nike

请配置 gunicorn 以查找 flask 应用程序。我想应用程序名称是在 create_function() 中定义的,它隐藏了来自 run.py 的应用程序;但是,我不知道如何修复它。这是使用应用程序运行 gunicorn 时的错误:

  1 (venv) MacPro:11a toshio$ gunicorn run:app
2 [2015-12-27 15:10:45 +0900] [83437] [INFO] Starting gunicorn 19.4.1
3 [2015-12-27 15:10:45 +0900] [83437] [INFO] Listening at: http://127.0.0.1:8000 (83437)
4 [2015-12-27 15:10:45 +0900] [83437] [INFO] Using worker: sync
5 [2015-12-27 15:10:45 +0900] [83440] [INFO] Booting worker with pid: 83440
6 Failed to find application: 'run'
7 [2015-12-27 15:10:51 +0900] [83440] [INFO] Worker exiting (pid: 83440)
8 [2015-12-27 15:10:52 +0900] [83437] [INFO] Shutting down: Master
9 [2015-12-27 15:10:52 +0900] [83437] [INFO] Reason: App failed to load.
10 (venv) MacPro:11a toshio$

应用结构如下:

  1 ├── app
2 │   ├── __init__.py
3 │   ├── main
4 │   │   ├── __init__.py
5 │   │   ├── forms.py
6 │   │   └── routes.py
7 │   ├── models.py
8 │   ├── static
9 │   │   ├── js
10 │   │   ├── css
11 │   │   ├── pdf
12 │   └── templates
13 │   ├── base.html
14 │   ├── index.html
15 │   ├── login.html
16 ├── config
17 │   └── development.py
18 ├── data-dev.sqlite3
19 ├── run.py

包构造器app/__init__.py代码:

  1 import os
2 import subprocess
3 import imghdr
4 from datetime import datetime
5 from flask import Flask, render_template, session, g, redirect, url_for, request
6 from flask.ext.script import Manager
7 from flask.ext.wtf import Form
8 from flask.ext.bootstrap import Bootstrap
9 from wtforms import StringField, SubmitField, ValidationError, PasswordField, BooleanField
10 from wtforms.validators import Required, Length
11 from werkzeug import secure_filename
12 from werkzeug.security import generate_password_hash, check_password_hash
13 from flask_wtf.file import FileField
14 from flask.ext.sqlalchemy import SQLAlchemy
15 from flask.ext.migrate import Migrate, MigrateCommand
16 from flask.ext.login import LoginManager, UserMixin, login_user, logout_user, login_required

18 bootstrap = Bootstrap()
19 db = SQLAlchemy()
20 lm = LoginManager()
21 lm.login_view = 'main.login'
22
23 def create_app(config_name):
24 """ Create an application instance """
25 app = Flask(__name__, static_folder = 'static')
26
27 # import configration
28 cfg = os.path.join( os.getcwd(), 'config', config_name + '.py' )
29 app.config.from_pyfile(cfg)
30
31 # initialize extenstions
32 bootstrap.init_app(app)
33 db.init_app(app)
34 lm.init_app(app)
35
36 # import blueprints
37 from .main import main as main_blueprint
38 app.register_blueprint(main_blueprint)
39
40 return app

最后 run.py 如下:

  1 #!/usr/bin/env python
2 from app import create_app, db
3 from app.models import User, Book
4
5
6 if __name__ == '__main__':
7 app = create_app('development')
8 with app.app_context():
9 db.create_all()
10 if User.query.filter_by(username='somebody').first() is None:
11 User.register('somebody', 'abc')
12 app.run()

最佳答案

尝试像这样从命令行运行 gunicorn:

gunicorn 'app:create_app("development")'

关于python - 如何设置 gunicorn 来查找 flask 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34478320/

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