Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 19, 2015 09:44:17

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Flask-admin во внешнем файле

Всем привет!
Прошу прощения за глупый вопрос - никак не могу нагуглить…
Учу фласк. Есть учебный проект по следам http://habrahabr.ru/post/193242/
Вот решил прикрутить админку, но хочу при этом вынести ее в отдельный файл
В __init__.py добавил

# -*- coding: utf-8 -*-
import os
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.login import LoginManager
from flask.ext.openid import OpenID
from config import basedir
from flask.ext.admin import Admin
app = Flask(__name__)
app.config.from_object('config')
db = SQLAlchemy(app)
lm = LoginManager()
lm.init_app(app)
lm.login_view = 'login'
oid = OpenID(app, os.path.join(basedir, 'tmp'))
admin = Admin(app)
from app import views, models

Создал файл app/admin.py
В нем уже хочу описать методы и вьюхи. Ну например - банально отобразить модель

# -*- coding: utf-8 -*-
from app import db, admin
from flask.ext.admin.contrib.sqla import ModelView
from models import User
admin.add_view(ModelView(User, db.session))
Но понятно что при запуске проекта я в админке модели не вижу.
Подскажите что и где я не правильно понял?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#2 Фев. 19, 2015 12:41:10

sander
Зарегистрирован: 2015-02-19
Сообщения: 317
Репутация: +  53  -
Профиль   Отправить e-mail  

Flask-admin во внешнем файле

добавление вьюхи нужно делать в файле __init__.py

Офлайн

#3 Фев. 19, 2015 13:01:19

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Flask-admin во внешнем файле

Безусловно - но как вы могли заметить я как раз и спрашиваю как вынести ето в отдельный файл! Я не хочу держать настройки админки и так далее в __init__ файле



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#4 Фев. 19, 2015 16:47:34

Virtul
От:
Зарегистрирован: 2012-01-27
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Flask-admin во внешнем файле

admin.init_app(app) не видно в коде
и в __init__ импортнуть модуль app/admin.py надо бы (до init)



Офлайн

#5 Фев. 19, 2015 16:51:02

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Flask-admin во внешнем файле

ниочем….



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#6 Фев. 20, 2015 13:11:52

sander
Зарегистрирован: 2015-02-19
Сообщения: 317
Репутация: +  53  -
Профиль   Отправить e-mail  

Flask-admin во внешнем файле

вынести никак, а файл с обьявлением app и добалением расширений для этого и нужен, обьявите вьюху в другом файле, где и кастомизируйте, и импортируйте в __init__.py

Отредактировано sander (Фев. 20, 2015 13:13:07)

Офлайн

#7 Фев. 20, 2015 14:05:18

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Flask-admin во внешнем файле

Других вариантов нет что ли?



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#8 Фев. 20, 2015 20:56:38

4kpt_III
Зарегистрирован: 2014-12-22
Сообщения: 999
Репутация: +  39  -
Профиль   Отправить e-mail  

Flask-admin во внешнем файле

ZerG
А чем Вас смущает решение sander?
Все правильно.
Так делаются и формы. Выносятся в отдельный файл и импортируются в файле __init__.py, т.е.
app/__init__.py
Там же конфигурируется проект и инициализируются все подключения. Также нормальной практикой считается настройка там логгера.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version