Найти - Пользователи
Полная версия: flask+nginx+uwsgi запуск сервера
Начало » Web » flask+nginx+uwsgi запуск сервера
1 2
druidich92
Добрый день.
имею небольшую проблему с настройкой сервера. а именно:
вот дерево /var/www/
.
└── flask
├── app
│** ├── auth
│** │** ├── forms.py
│** │** ├── __init__.py
│** │** └── views.py
│** ├── exceptions.py
│** ├── __init__.py
│** ├── main
│** │** ├── errors.py
│** │** ├── forms.py
│** │** ├── __init__.py
│** │** └── views.py
│** ├── model.py
│** ├── static
│** └── templates
├── config.py
├── data.db
└── run.py

/var/www/flask/run.py
mport os
from app import create_app, db
 
app = create_app(os.getenv('FLASK_CONFIG') or 'default')
 
if __name__ == '__main__':
    app.run()

/var/www/flask/app/__init__.py
from flask import Flask, render_template
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.bootstrap import Bootstrap
from flask.ext.moment import Moment
from flask.ext.script import Manager
from flask.ext.mail import Mail
from config import config
from flask.ext.login import LoginManager
from flask.ext.pagedown import PageDown
 
db = SQLAlchemy()
bootstrap = Bootstrap()
moment = Moment()
mail = Mail()
login_manager = LoginManager()
login_manager.session_protection = 'strong'
login_manager.login_view = 'auth/login'
pagedown = PageDown()
 
 
def create_app(configname):
    app = Flask(__name__)
    app.config.from_object(config[configname])
    config[configname].init_app(app)
    db.init_app(app)
    bootstrap.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
    pagedown.init_app(app)
 
    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)
 
    from .auth import auth as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/auth')
 
    from .api import api as api_blueprint
    app.register_blueprint(api_blueprint, url_prefix='/api/v1.0')
 
    login_manager.init_app(app)
 
    return app

когда в run.py
    app.run(host='myIP', port=80)
все стартует замечательно, все модули подключаются

но стоит запустить(находясь в /var/www/flask) uwsgi_python3 -w run:app –http-socket :9000
как начинаются проблемы, не может найти create_app в app

подскажите, как все же запусить сервер ?
4kpt_IV
А-ну-ка покажите любую вьюху, если можно.
druidich92
4kpt_IV
А-ну-ка покажите любую вьюху, если можно.
что простите ?
4kpt_IV
views.py. Любую функцию отображения.
druidich92
4kpt_IV
views.py. Любую функцию отображения.
@main.route('/')
def index():
    
    return render_template('about.html')
@main.route('/experience')
def experience():
    return render_template('experience.html')
@main.route('/blog', methods=['GET', 'POST'])
def blog():
    form = PostForm()
    if current_user.can(Permission.WRITE_ARTICLES) and form.validate_on_submit():
        post = Post(body=form.body.data, author=current_user._get_current_object())
        db.session.add(post)
        return redirect(url_for('.blog'))
    page = request.args.get('page', 1, type=int)
    show_followed = False
    if current_user.is_authenticated:
        show_followed = bool(request.cookies.get('show_followed', ''))
    if show_followed:
        query = current_user.followed_posts
    else:
        query = Post.query
    pagination = query.order_by(Post.timestamp.desc()).paginate(page, per_page=current_app.config[
        'FLASKY_POSTS_PER_PAGE'], error_out=False)
    posts = pagination.items
    return render_template('blog.html', form=form, posts=posts, pagination=pagination, show_followed=show_followed)
@main.route('/all')
@login_required
def show_all():
    resp = make_response(redirect(url_for('.blog')))
    resp.set_cookie('show_followed', '', max_age=30 * 24 * 60 * 60)
    return resp
@main.route('/followed')
@login_required
def show_followed():
    resp = make_response(redirect(url_for('.blog')))
    resp.set_cookie('show_followed', '1', max_age=30 * 24 * 60 * 60)
    return resp
и тд. там 258 строк для main. или все функции выложить ?
4kpt_IV
Покажите откуда во vies.py берется main…
druidich92
4kpt_IV
Покажите откуда во vies.py берется main…
from os import abort
from flask import render_template, session, redirect, url_for, flash, request, current_app, make_response
from flask.ext.login import login_required, current_user
from app.decorators import admin_required, permission_required
from app.main.forms import EditProfileAdminForm, PostForm, CommentForm
from app.auth.forms import EditProfileForm
from . import main
from .. import db
from ..model import User, Role, Permission, Post, Comment
import datetime
[/code\
4kpt_IV
Оу. Попробую попроще. Существует множество методов конфигурирования flask приложения и Вы выбрали самый неудачный. Поэтому теперь разгребаете. Везет еще, что нет кучи зависимостей иначе это все было бы вообще не читаемым.

По-вашему вопросу.

app воспринимается как пакет…
druidich92
4kpt_IV
Оу. Попробую попроще. Существует множество методов конфигурирования flask приложения и Вы выбрали самый неудачный. Поэтому теперь разгребаете. Везет еще, что нет кучи зависимостей иначе это все было бы вообще не читаемым.По-вашему вопросу.app воспринимается как пакет…
вот жешь. изучал flask по книге и репозиторию
гитхаб… т.е мой сайт точь в точь по структуре. не думал что все так плохо.

может вы что нибудь посоветуете ? все же хотелось бы сайт то запусить, потестить
4kpt_IV
Киньте скайп в личку. Покажу как правильно конфигурировать.
Самое, что обидное - это то, что в литературе приводится именно неудачный способ конфигурирования. Да еще на уровне инита модуля в рантайме. Короче. Жесть жестокая
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB