Уведомления

Группа в Telegram: @pythonsu

#1 Март 5, 2016 19:02:23

druidich92
Зарегистрирован: 2016-03-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

flask+nginx+uwsgi запуск сервера

Добрый день.
имею небольшую проблему с настройкой сервера. а именно:
вот дерево /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

подскажите, как все же запусить сервер ?

Офлайн

#2 Март 5, 2016 19:27:19

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

flask+nginx+uwsgi запуск сервера

А-ну-ка покажите любую вьюху, если можно.

Офлайн

#3 Март 5, 2016 19:30:47

druidich92
Зарегистрирован: 2016-03-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

flask+nginx+uwsgi запуск сервера

4kpt_IV
А-ну-ка покажите любую вьюху, если можно.
что простите ?

Офлайн

#4 Март 5, 2016 19:32:33

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

flask+nginx+uwsgi запуск сервера

views.py. Любую функцию отображения.

Офлайн

#5 Март 5, 2016 19:35:05

druidich92
Зарегистрирован: 2016-03-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

flask+nginx+uwsgi запуск сервера

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. или все функции выложить ?

Офлайн

#6 Март 5, 2016 19:37:38

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

flask+nginx+uwsgi запуск сервера

Покажите откуда во vies.py берется main…

Офлайн

#7 Март 5, 2016 19:40:10

druidich92
Зарегистрирован: 2016-03-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

flask+nginx+uwsgi запуск сервера

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\

Офлайн

#8 Март 5, 2016 19:49:02

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

flask+nginx+uwsgi запуск сервера

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

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

app воспринимается как пакет…

Офлайн

#9 Март 5, 2016 20:06:53

druidich92
Зарегистрирован: 2016-03-05
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

flask+nginx+uwsgi запуск сервера

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

может вы что нибудь посоветуете ? все же хотелось бы сайт то запусить, потестить

Офлайн

#10 Март 5, 2016 20:17:51

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

flask+nginx+uwsgi запуск сервера

Киньте скайп в личку. Покажу как правильно конфигурировать.
Самое, что обидное - это то, что в литературе приводится именно неудачный способ конфигурирования. Да еще на уровне инита модуля в рантайме. Короче. Жесть жестокая

Отредактировано 4kpt_IV (Март 5, 2016 20:17:59)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version