def create_app(config_name='dev'): app = Flask(__name__) # sifn = show if none app.jinja_env.filters['sifn'] = lambda it: '无' if not it else it app.jinja_env.filters['with_site'] = lambda title: title + ' - pkyx' # 导入配置 app.config.from_object(config[config_name]) config[config_name].init_app(app) # 初始化flask_admin admin.init_app(app) admin.add_view(FileView(os.path.join(os.path.dirname(__file__), 'static'), '/static/')) # 初始化MongoDB mongo.init_app(app) with app.app_context(): mongo.db['items'].create_index('title', background=True) # 初始化Celery celery.init_app(app) # 初始化Flask-mail mail.init_app(app) # 初始化Flask-Login login_manager.init_app(app) login_manager.login_view = 'main.register' login_manager.login_message = '请先登录或注册' @login_manager.user_loader def load_user(user_id): user = None db_user = mongo.db.users.find_one({"_id": bson_obj_id(user_id)}) if db_user is not None: user_id = db_user.pop('_id') user = User(user_id, extras=db_user) return user # @login_manager.unauthorized_handler # def unauthorized(): # pass from app.main import main as main_blueprint app.register_blueprint(main_blueprint) from app.users import users as users_blueprint app.register_blueprint(users_blueprint) from app.api import api as api_blueprint app.register_blueprint(api_blueprint) return app
# coding=utf-8 from flask_admin.menu import MenuLink from app.utils.admin import CommonModelView from app.user.models import Role, User from app.extensions import admin, db from flask import current_app admin.add_view(CommonModelView(User, db.session, name=u'用户', category=u'用户管理')) admin.add_view(CommonModelView(Role, db.session, name=u'角色', category=u'用户管理')) admin.add_menu_item(MenuLink(name=u'返回', endpoint=current_app.config["HOME_VIEW"]))
class CustomerListView(ProtectedModelView): """ Customers are only listed and can be edited but not created """ form_excluded_columns = ['registered_on', 'reservations'] column_list = [ 'id', 'first_name', 'last_name', 'street', 'zip_code', 'city', 'tel', 'email' ] column_editable_list = [ 'first_name', 'last_name', 'street', 'zip_code', 'city', 'tel', 'email' ] class ReservationListView(ProtectedModelView): form_excluded_columns = ['timestamp'] column_editable_list = [ 'confirmed', ] # Register ModelViews admin.add_view(CustomerListView(Customer, db.session, name="Kunden")) # Customer admin.add_view( ReservationListView(Reservation, db.session, name="Reservierungen")) # Customer
from flask_admin.contrib.sqla import ModelView from app.extensions import db, admin from app.models import User, Post, Tag from app.admin_backup import AdminBackupModelViewMixin class UserModelView(AdminBackupModelViewMixin, ModelView): column_list = ('id', 'name', 'username') column_default_sort = 'id' can_delete = False can_export = True export_max_rows = 1000 export_types = ['csv', 'xls'] can_set_page_size = True admin.add_view(UserModelView(User, db.session))
class CommentAdmin(ModelView): column_exclude_list = ['disabled'] def __init__(self, session): super(CommentAdmin, self).__init__(Comment, session) class MessageAdmin(ModelView): def __init__(self, session): super(MessageAdmin, self).__init__(Message, session) class NoticeAdmin(ModelView): def __init__(self, session): super(NoticeAdmin, self).__init__(Notice, session) admin.add_view(BulletinAdmin(db.session)) admin.add_view(UserAdmin(db.session)) admin.add_view(FollowAdmin(db.session)) admin.add_view(PostAdmin(db.session)) admin.add_view(VoteAdmin(db.session)) admin.add_view(TopicAdmin(db.session)) admin.add_view(CommentAdmin(db.session)) admin.add_view(MessageAdmin(db.session)) admin.add_view(NoticeAdmin(db.session)) admin.add_view(FileAdmin(db.app.config['UPLOAD_FOLDER'], '/uploads/', name='uploaded files'))
collects.append({ "id": u.id, "imgurl": p.icon, "top_img": u.top_img, "top_title": u.top_title, "username": p.nickname, "house_type": u.house_type, "usable_area": u.usable_area }) return jsonify({'ret': 'true', 'data': collects}) else: return jsonify({'ret': 'true', 'data': {'state': 0}}) # 查询失败 from flask.ext.admin.contrib.sqla import ModelView admin.add_view(ModelView(Personal, db.session, name='个人资料')) admin.add_view(ModelView(Collects, db.session, name='收藏')) admin.add_view(ModelView(Design, db.session, name='设计')) admin.add_view(ModelView(Diary, db.session, name='日记')) admin.add_view(ModelView(Information, db.session, name='系统消息')) admin.add_view(ModelView(Posts, db.session, name='问题')) admin.add_view(ModelView(Styles, db.session, name='灵感')) admin.add_view(ModelView(Topics, db.session, name='文章')) admin.add_view(ModelView(Topics_one, db.session, name='话题标题')) admin.add_view(ModelView(Topics_udcontent, db.session, name='话题内容')) admin.add_view(ModelView(UnderDiscussion, db.session, name='讨论标题')) admin.add_view(ModelView(Udcontent, db.session, name='讨论内容')) admin.add_view(ModelView(Users, db.session, name='用户密码')) admin.add_view(FileAdmin(base_dir, '/static/upload/', name='文件管理'))
] column_descriptions = dict( sync_term= ("If true, the nightly sync will update the terms courses, outcome results, grades, etc. " "Only select columns that need to be synced for performance. Multiple terms can be selected" ), current_term= "The term that will be displayed in the student/observer view. ONLY ONE can be selected at a time.", ) class GradeCriteriaView(CblModelView): column_descriptions = dict( grade_rank= "1 = Highest grade. This order must be correct for grades to calculate correctly" ) class TaskView(CblModelView): column_editable_list = ["complete"] column_descriptions = dict( complete= "If a job is clearly dead, but isn't showing as complete (i.e. It's been running for over 4 hours). Change this to `true` to allow a new job." ) admin.add_view(EnrollmentTermView(EnrollmentTerm, db.session)) admin.add_view(GradeCriteriaView(GradeCalculation, db.session)) admin.add_view(TaskView(Task, db.session))
try: reload(sys) sys.setdefaultencoding('UTF8') except NameError as e: print('>>>> Use linux btw') handler = RotatingFileHandler('app.log', maxBytes=10000, backupCount=3) logger = logging.getLogger(__name__) logger.setLevel(logging.ERROR) logger.addHandler(handler) blueprint = Blueprint('ar', 'ar') login_manager.login_view = '/ar/login' admin.add_view(ModelView(Quest, db.session)) @blueprint.route('/quests', methods=['GET']) def get_quests(): all_quests = db.session.query(Quest).all() quests_response = [] for i in range(len(all_quests)): quests_response.append({ 'id': all_quests[i].id, 'name': all_quests[i].name, # ToDo: put code to Quest class 'code': hashlib.md5(str(i).encode('utf-8')).hexdigest()[:8], 'description': all_quests[i].description, 'thumbnailUrl': all_quests[i].thumbnailUrl
from flask_admin.contrib.sqla import ModelView from app.database import db from app.user.models import User from app.report.models import Report from app.extensions import admin admin.add_view(ModelView(User, db.session)) admin.add_view(ModelView(Report, db.session))
def configure_admin(app): class AuthenticatedModelView(ModelView): def is_accessible(self): return login.current_user.is_authenticated( ) and login.current_user.role == ROLE_ADMIN admin.add_view(AuthenticatedModelView(User, db.session, endpoint='myuser')) admin.add_view(AuthenticatedModelView(Follow, db.session)) admin.add_view(AuthenticatedModelView(SocialMediaAccount, db.session)) admin.add_view(AuthenticatedModelView(FacebookAccount, db.session)) admin.add_view(AuthenticatedModelView(TwitterAccount, db.session)) admin.add_view(AuthenticatedModelView(Post, db.session)) admin.add_view(AuthenticatedModelView(TwitterPost, db.session)) admin.init_app(app)
def configure_admin(app): class AuthenticatedModelView(ModelView): def is_accessible(self): return login.current_user.is_authenticated() and login.current_user.role == ROLE_ADMIN admin.add_view(AuthenticatedModelView(User, db.session, endpoint='myuser')) admin.add_view(AuthenticatedModelView(Follow, db.session)) admin.add_view(AuthenticatedModelView(SocialMediaAccount, db.session)) admin.add_view(AuthenticatedModelView(FacebookAccount, db.session)) admin.add_view(AuthenticatedModelView(TwitterAccount, db.session)) admin.add_view(AuthenticatedModelView(Post, db.session)) admin.add_view(AuthenticatedModelView(TwitterPost, db.session)) admin.init_app(app)
from flask_babelex import lazy_gettext from Documents.patient import Patient from Documents.testdata import Testdata from app.user.models import User, Role from app.extensions import admin from app.user.admin import UserView, RoleView from Documents.admin import PatientView, TestdataView for model in (User, Role, Patient, Testdata): admin.add_view(locals()[model.__name__ + 'View'](model, name=lazy_gettext( model.__name__)))
user = getattr(g, 'user', None) if user is not None: return user.timezone return app.config['BABEL_DEFAULT_TIMEZONE'] app = Flask(__name__) app.config.from_object(Config()) app.logger.debug('app created') admin.init_app(app) db.init_app(app) init_i18n(app) oid.init_app(app) admin.add_view(BookmarkAdmin(Bookmark, db.session, endpoint='bookmarkadmin')) admin.add_view(TagAdmin(Tag, db.session, endpoint='tagadmin')) admin.add_view(UserAdmin(User, db.session, endpoint='useradmin')) app.register_blueprint(links) @app.before_first_request def before_first_request(): db.create_all() @app.template_filter('unicode') def unicode_filter(value): try: return unicode(value, encoding='UTF-8')
def register_admin(app, db): admin.init_app(app) admin.add_view(EventView(Event, db.session)) admin.add_view(TeamView(Team, db.session)) admin.add_view(PlayerView(Player, db.session)) admin.add_view(CustomModelView(Task, db.session))