Я пытаюсь запустить приложение без фляг в apache, используя mod_wsgi. Это отлично работает с сервером разработки. Я прочитал все, что смог найти, и ни один из ответов, которые я видел, не работает для меня. Приложение правильно обрабатывает запросы, не относящиеся к базе данных, но выдает следующую ошибку, когда я пытаюсь получить доступ к URL-адресу, для которого требуется доступ к базе данных:
OperationalError: (OperationalError) (2003, "Can't connect to MySQL server on 'localhost' ([Errno 13] Permission denied)") None None
Я урезал в основном быстрый старт без колбы с моими config
и моими импортированными моделями sqlalchemy (from flask import models
). Вот мой код на питоне:
import flask
import flask.ext.sqlalchemy
import flask.ext.restless
import sys
sys.path.insert(0, '/proper/path/to/application')
application = flask.Flask(__name__, static_url_path = "")
application.debug=True
application.config.from_object('config')
db = flask.ext.sqlalchemy.SQLAlchemy(application)
from app import models
# Create the Flask-Restless API manager.
manager = flask.ext.restless.APIManager(application, flask_sqlalchemy_db=db)
# Create API endpoints, which will be available at /api/<tablename> by
# default. Allowed HTTP methods can be specified as well.
manager.create_api(models.Asset, methods=['GET'])
# start the flask loop
if __name__ == '__main__':
application.run()
Я предполагаю, что у mod_wsgi нет проблем с поиском файла config
, который содержит сведения о доступе к базе данных, поскольку я не получаю сообщения об ошибке при чтении конфигурации, а также не получаю сообщения об ошибке from app import models
.
Мои исследования до сих пор привели меня к мысли, что это как-то связано с соединением sql-alchemy db, существующим в неправильной области или контексте и, возможно, осложненным неугомонным API-менеджером flask. Кажется, я не могу уложить это в голове.