标签: formalchemy

SQLAlchemy的管理界面?

我一直在开发一个Django应用程序,但是我最近改变了整体架构计划.我不再需要一个Web框架,只需一个简单的Python脚本,所以我正在从使用Django ORM转向使用SQLAlchemy来创建和管理数据库.

以前我使用Django Admin界面来审查用户发布的内容(添加到数据库中),以便审核它们.

我仍然需要一种通过网站审核用户添加内容的方法.我认为有两种选择:

  • 从头开始自己构建管理Web界面:(
  • 使用现有库,可以更轻松地创建管理界面(对于使用SQLAlchemy创建的数据库).

我开始研究FormAlchemy.如果您有使用FormAlchemy的经验:是否可以使用它创建管理界面,并且是一个特别的框架,更适合用它构建它?


否则,你知道SQLAlchemy管理界面问题有什么好的解决方案吗?

python django sqlalchemy django-orm formalchemy

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

Pyramid和FormAlchemy管理界面

我有一个使用formalchemy管理界面的金字塔项目.我添加了基本的ACL身份验证,即使我通过了身份验证,pyramid_formalchemy插件总是会拒绝.

有关如何仅允许经过身份验证的用户使用pyramid_formalchemy管理界面的任何想法?

授权策略添加如下:

authn_policy = AuthTktAuthenticationPolicy('MYhiddenSECRET', callback=groupfinder)
authz_policy = ACLAuthorizationPolicy()

config = Configurator(
   settings=settings,
   root_factory='package.auth.RootFactory',
   authentication_policy=authn_policy,
   authorization_policy=authz_policy
)

# pyramid_formalchemy's configuration
config.include('pyramid_formalchemy')
config.include('fa.jquery')
config.formalchemy_admin('admin', package='package', view='fa.jquery.pyramid.ModelView')

python acl authorization formalchemy pyramid

5
推荐指数
1
解决办法
2418
查看次数

自定义pyramid_formalchemy表单

我在pyramid_formalchemy中创建自定义表单时遇到问题.我怀疑包中有一个错误,并想确认我没有遗漏任何东西.我的设置如下:

def includeme(config):
    config.include('pyramid_formalchemy')
    # Adding the jquery libraries
    config.include('fa.jquery')
    # Adding the package specific routes
    config.include('myapp.web.formalchemy.faroutes')

    config.formalchemy_admin('admin',
                             models=[User],
                             forms=faforms,
                             session_factory=session,
                             view='fa.jquery.pyramid.ModelView',
                             factory='myapp.model.RootFactory')

    config.formalchemy_model('user',
                             model='myapp.model.user.User',
                             session_factory=session,
                             view='fa.jquery.pyramid.ModelView',
                             factory='myapp.model.RootFactory')
Run Code Online (Sandbox Code Playgroud)

faforms是一个包含我的自定义表单的模块:

from myapp.model.user import User

from formalchemy import FieldSet
from formalchemy import Grid

class UserFieldSet(FieldSet):
    def __init__(self):
        FieldSet.__init__(self, User)
        self.configure()

class UserGrid(Grid):
    def __init__(self):
        Grid.__init__(self, User)
        self.configure()
Run Code Online (Sandbox Code Playgroud)

如果我评论上面的两个类,formalchemy工作正常.我可以查看用户,我可以编辑它们.

当我把这两个课程放进去遇到问题时.问题是pyramid_formalchemy从模块的命名空间中获取UserGrid和UserFieldSet,然后尝试使用它们,就好像它们是实例化的类一样.这打破了事情.另一方面,如果pyramid_formalchemy没有找到将动态创建类的类并实例化它们.我相信有问题的代码在pyramid_formalchemy/views.py中,第236行从get_grid()函数开始:

def get_grid(self):
    """return a Grid object"""
    request = self.request
    model_name = request.model_name
    form_name = '%sGrid' % model_name
    if hasattr(request.forms, form_name):
        g = getattr(request.forms, …
Run Code Online (Sandbox Code Playgroud)

python formalchemy pyramid

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

当没有根标签时用hxml解析html

我一直在使用lxml和formalchemy为sqlalchemy构建一个脚手架库,我很难让他们玩得很好.具体来说,formalchemy.FieldSet.render()返回一个没有root标签的html片段,我似乎无法弄清楚如何让lxml将其解析成可以包含在元素树中的东西:

我得到了什么:

>>> lxml.etree.fromstring(formalchemy.FieldSet(toyschema.User(), session).render())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "lxml.etree.pyx", line 2743, in lxml.etree.fromstring (src/lxml/lxml.etree.c:52665)
  File "parser.pxi", line 1573, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:79932)
  File "parser.pxi", line 1445, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:78709)
  File "parser.pxi", line 920, in lxml.etree._BaseParser._parseUnicodeDoc (src/lxml/lxml.etree.c:75083)
  File "parser.pxi", line 564, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:71739)
  File "parser.pxi", line 645, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:72614)
  File "parser.pxi", line 585, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:71955)
lxml.etree.XMLSyntaxError: Extra content at the end of the document, line 8, column 1 …
Run Code Online (Sandbox Code Playgroud)

python lxml formalchemy

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