标签: flask-admin

如何在Windows上运行Airflow

运行Airflow的常用说明不适用于Windows环境:

# airflow needs a home, ~/airflow is the default,
# but you can lay foundation somewhere else if you prefer
# (optional)
export AIRFLOW_HOME=~/airflow

# install from pypi using pip
pip install airflow

# initialize the database
airflow initdb

# start the web server, default port is 8080
airflow webserver -p 8080
Run Code Online (Sandbox Code Playgroud)

Airflow实用程序在命令行中不可用,我无法在其他地方找到它以手动添加.Airflow如何在Windows上运行?

python windows flask flask-admin airflow

24
推荐指数
6
解决办法
3万
查看次数

如何确保烧瓶管理面板具有烧瓶安全性

我希望使用Flask保护Web API并与之集成flask-admin以提供管理界面.我搜索并发现flask-admin有一个管理面板,/admin默认情况下任何人都可以访问它.它不提供身份验证系统并且完全打开(没有任何安全性),因为他们没有假设用于提供安全性的内容.此API必须在生产中使用,因此我们无法/admin为每个人访问网址提供开放路径.需要适当的身份验证.

views.py我不能简单地放置/admin路由并通过装饰器提供身份验证,因为这将覆盖已经创建的现有路由flask-admin,从而导致错误.

进一步的研究表明,有两个模块flask-adminflask-security.我知道flask-adminis_accessible保护它的方法,但它没有提供很多功能flask-security.

我没有找到任何方法来确保终点/admin加上所有其他终点,/admin例如/admin/<something>.

我正在寻找专门用flask-security来完成这项任务.如果不可能,请提出替代方案.

PS:我知道我可以锁定ngnix自己,但那将是最后一个选择.如果我可以拥有一个认证系统,flask-security那将是好事.

security authentication flask flask-security flask-admin

19
推荐指数
2
解决办法
1万
查看次数

在Flask-Admin中处理MongoEngine的DynamicEmbeddedDocument

我有一个问题,我找不到一个简单的解决方案,使用Flask-Admin和MongoEngine.我有一个名为的Document类ExerciseResourceContent.它有一个"问题"属性,它是一个ListField一个的EmbeddedDocumentExerciseQuestion:

class ExerciseResourceContent(ResourceContent):
    """An exercise with a list of questions."""

    ## Embedded list of questions
    questions = db.ListField(db.EmbeddedDocumentField(ExerciseQuestion))
Run Code Online (Sandbox Code Playgroud)

ExerciseQuestion文件实际上是DynamicEmbeddedDocument:

class ExerciseQuestion(db.DynamicEmbeddedDocument):
    """
    Generic collection, every question type will inherit from this.
    Subclasses should override method "without_correct_answer" in order to define the version sent to clients.
    Subclasses of questions depending on presentation parameters should also override method "with_computed_correct_answer".
    """

    _id = db.ObjectIdField(default=ObjectId)

    ## Question text
    question_text = db.StringField(required=True)

    ## …
Run Code Online (Sandbox Code Playgroud)

python mongoengine flask flask-admin

16
推荐指数
1
解决办法
789
查看次数

使用Flask,Flask-Admin和WTforms的DatePickerWidget

我正在尝试渲染一个包含DatePicker的模板,但是当我尝试时遇到500错误.因为我的代码是正确的,但似乎有些东西失败了或者我没有正确理解它的方法.

代码如下:

Reporting.py

from flask.ext.admin import BaseView, expose
from wtforms import DateField, Form
from wtforms.validators import Required
from flask.ext.admin.form import widgets
from flask import request

class DateRangeForm(Form):
    start_date = DateField('Start', validators=[Required()], format = '%d/%m/%Y', description = 'Time that the event will occur', widget=widgets.DatePickerWidget)

class ReportingView(BaseView):
    @expose('/')
    def index(self):
        form = DateRangeForm(request.form)
        return self.render('reporting.j2', form=form)
Run Code Online (Sandbox Code Playgroud)

报告模板:

{% extends 'admin/master.html' %}
{% block body %}
    {{super()}}
    Working on it!

    {% if form %}
        {{form.start_date}}
    {% endif %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

jinja2 flask wtforms flask-wtforms flask-admin

15
推荐指数
1
解决办法
2万
查看次数

Flask-Admin默认过滤器

我想在Flask-Admin模型列表视图中仅显示付费订单.

这是models.py:

class Order(db.Model):
   id = db.Column(db.Integer, primary_key=True)
   amount = db.Column(db.Integer)
   description = db.Column(db.String)
   paid = db.Column(db.Boolean, default=False)
Run Code Online (Sandbox Code Playgroud)

这是Flask-Admin的ModelView:

class OrderView(ModelView):
    column_filters = ("paid")


admin.add_view(OrderView(Order, db.session))
Run Code Online (Sandbox Code Playgroud)

过滤器工作正常,但我想使此过滤器默认.或者更好的是,不要使用过滤器,只显示输出Order.query.filter(Order.paid==True)查询的订单.

是否可以使用Flask-Admin?

python flask flask-admin

15
推荐指数
1
解决办法
7399
查看次数

Flask-Admin使用SQLAlchemy上下文相关函数创建视图

我有一个具有依赖于其它列的值一列,按照该指令的数据模型,这个页面,我创建了用于确定在创建这个特定列,像这样的值上下文敏感的功能:

def get_column_value_from_context(context):
    # Instructions to produce value

    return value


class MyModel(db.Model):
    id = db.Column(db.Integer,
                   primary_key=True)
    my_column = db.Column(db.String(64),
                          nullable=False,
                          default=get_column_value_from_context)
    name = db.Column(db.String(32),
                     nullable=False,
                     unique=True,
                     index=True)
    title = db.Column(db.String(128),
                      nullable=False)
    description = db.Column(db.String(256),
                            nullable=False)
Run Code Online (Sandbox Code Playgroud)

这种方法非常不错,我可以从命令行或使用脚本创建没有问题的行.

我还ModelView使用Flask-Admin在应用程序中添加了一个:

class MyModelView(ModelView):
    can_view_details = True
    can_set_page_size = True
    can_export = True


admin.add_view(MyModelView(MyModel, db.session))
Run Code Online (Sandbox Code Playgroud)

在我单击列表视图中的" 创建"按钮之前,这也很有效.我收到此错误:

AttributeError:'NoneType'对象没有属性'get_current_parameters'

因为在这里执行create_model处理程序ModelView这样的:

def create_model(self, form):
    """
        Create model from form.
        :param form:
            Form instance
    """ …
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy flask-admin

13
推荐指数
1
解决办法
524
查看次数

将参数传递给flask-admin中的ModelView编辑模板

我想通过构建CMS来了解有关Flask的更多信息.我正在使用flask-admin添加帖子,图片等.

我设法用ckeditor覆盖textarea .但我想将静态文件夹中图像的路径传递给ckeditor图像插件.

我无法弄清楚如何将参数传递给我的edit.html模板.

这是代码:

class TestAdmin(ModelView):
    form_overrides = dict(text=forms.CustomTextAreaField)
    create_template = 'edit.html'
    edit_template = 'edit.html'
Run Code Online (Sandbox Code Playgroud)

从flask-admin的文档中我发现_template_args可以用来将参数传递给模板.但我无法弄清楚如何.

这样做的确切方法是什么?

python flask flask-admin

12
推荐指数
1
解决办法
4912
查看次数

使用flask-admin中的下拉菜单限制选项

我的SQLAlchemy模型有一个String字段,我想限制为几个选择.

我想知道如何在Flask-Admin界面中为此字段创建一个下拉列表,以确保只使用我的一个选项填充数据库.如果我让用户手动输入这些字段,他们可能会错误地拼写它们等.

python flask-admin

12
推荐指数
1
解决办法
4678
查看次数

编辑视图中的只读表单字段 - Flask-Admin

我尝试将表单字段设置readonly为Flask-Admin应用程序中的编辑视图.根据这个问题的答案,我知道如果我有这个

class MyView(ModelView):
    form_widget_args = {
        'title': {
            'readonly': True
        }
    }
Run Code Online (Sandbox Code Playgroud)

我可以将表单字段设置为readonly,但这适用于创建编辑视图.如何仅将参数应用于编辑视图?

python flask flask-sqlalchemy flask-admin

12
推荐指数
2
解决办法
1197
查看次数

从编辑视图自定义(覆盖)Flask-Admin的Submit方法

前提条件:
我是Python新手,特别是Flask-Admin.我创建了一个简单的测试服务,它有MondoDB,保持数据的"一对一"关系.

employeeName - >薪水

该模型看起来像这样:

class Employee(db.Document):
    fullName = db.StringField(max_length=160, unique=True)
    salary = db.IntField()
Run Code Online (Sandbox Code Playgroud)

我使用Flask-Admin来查看包含数据的表并进行编辑.当我想更改'salary'字段时,我只需按下'edit'按钮,在Flask-Admin的默认编辑视图中我更改整数值.我按"提交"并成功应用数据库中的新值.

问题:
但是我需要以这种方式覆盖Submit方法,因为它是功能并添加了一些自定义代码.就像我们假设我想在实际数据库提交后在日志文件中添加注释:

logging.warning('%s的工资:已更改为/%s',fullName,salary)

任何关于如何实现这一点的建议都将受到高度赞赏.也许你可以指导我走的路,因为Flask-Admin文档到目前为止还没有给我足够的帮助.

python flask flask-admin

11
推荐指数
1
解决办法
7045
查看次数