.wsgi dosyasında aşağıdaki yapılandırmaları kullanarak tek bir flask uygulamasını wsgi ve apache2 ile dağıtmayı başardım. Uygulama oluşturma için fabrika işlevli bir Flask uygulaması nasıl dağıtılır
#!/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))
Benim apache2 .conf dosyası:
<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>
nasıl uygulama yaratılması için fabrika fonksiyonu ile Matara uygulamayı dağıtmak? Fabrika fonksiyon yapısı ile
Flask Uygulama:
| - 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) bildiren "Eğer doğrudan alabilir uygulama oluşturulması için fabrika işlevini ancak tekil örneği yoksa uygulama olarak, bir."
app/init .py (fabrika işlevi):
# 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
Ne Maddeleri i Fabrika Fonksiyon Uygulama üzerinde çalışmaya etkinleştirmek için ne gerekiyor?
Neden bir fabrikaya ihtiyacınız var? Tek kişilik olarak başarılı bir şekilde çalışıyorsanız, iyisiniz. Ve değiştirmenizi istediğinizi size söyleyemeyiz çünkü bir fabrikada dizin yapısıyla hiçbir ilgisi yok, kodda tanımladığınız bir şey var. Bir fabrika fonksiyonu yazdınız mı? Eğer değilse, başlangıç yapmanız gereken yerdir. – dirn