Мне удалось развернуть однопользовательское фляжное приложение с wsgi и apache2, используя следующие конфигурации в файле .wsgi.Как развернуть приложение Flask с заводской функцией для создания приложения
#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/Devrupt/")
from Devrupt import app as application
application.secret_key = 'Add your secret key'
activate_this = '/var/www/Devrupt/venv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
Мои apache2 .conf файл:
<VirtualHost *:80>
ServerName devrupt.com
ServerAdmin [email protected]
WSGIScriptAlias//var/www/Devrupt/devrupt.wsgi
<Directory /var/www/Devrupt/Devrupt/>
Order allow,deny
Allow from all
</Directory>
Alias /static /var/www/Devrupt/Devrupt/static
<Directory /var/www/Devrupt/Devrupt/static/>
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Как развернуть приложение колба с функцией фабрики для создания приложений?
Колба Применение со структурой функции завода:
| - Devrupt
| - Devrupt
|- app/
|- templates/
|- static/
|- main/
|- __init__.py
|- errors.py
|- forms.py
|- views.py
|- __init__.py # Factory Function
|- models.py
|- migrations/ # Contains the database migrations scripts
|- tests/ # Where unit tests are written
|- __init__.py
|- test*.py
|- venv/ # Contains the python virtual environment
|- requirements.txt # List package dependencies so that it is easy to regenerate an identical virtual environment on a diff machine
|- config.py # Stores the configuration settings
|- manage.py # Launch the application and other applcation tasks
| - devrupt.wsgi
mod_wsgi (Apache) утверждает, что «Если вы не имеете фабричную функцию для создания приложений, но одноэлементный экземпляр вы можете напрямую импортировать, что один в качестве приложения.»
приложение/инициализации .py (заводская функция):
# Application Package Constructor
from flask import Flask, render_template
from flask.ext.bootstrap import Bootstrap
from flask.ext.mail import Mail
from flask.ext.moment import Moment
from config import config
bootstrap = Bootstrap()
moment = Moment()
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
config[config_name].init_app(app)
bootstrap.init_app(app)
moment.init_app(app)
# Attach Routes and custom error messages here
from .main import main as main_blueprint
app.register_blueprint(main_blueprint)
return app
Что ammendments делать я должен сделать, чтобы он мог работать на заводе прикладную функцию?
Зачем вам нужен завод? Если вы успешно работаете как синглтон, вы в порядке. И мы не можем сказать, что вам нужно изменить, потому что фабрика не имеет никакого отношения к структуре каталогов, это то, что вы определяете в коде. Вы написали заводскую функцию? Если нет, вам нужно начать. – dirn