小编art*_*_dk的帖子

python中抽象类和元类有什么区别?

我读了两篇关于python中元类的文章:

Python 中的元类是什么? http://jakevdp.github.io/blog/2012/12/01/a-primer-on-python-metaclasses/

我阅读了有关 ABC(抽象基类)的信息,该信息显示在:

https://docs.python.org/2/library/abc.html

所以我不得不问:元类和抽象基类(ABC)有什么区别?

据我所知,我可以使用两者来定义元类(元类)的类创建。

我会出于什么目的使用 ABC 或“我自己的”元类?

python abstract-class metaclass

7
推荐指数
0
解决办法
3693
查看次数

如何使用棉花糖序列化自定义sqlalchemy字段?

我刚刚开始一个名为flask_wiki的简单项目,我正在使用一些烧瓶扩展,如下所示:

  • 烧瓶的SQLAlchemy
  • 瓶的RESTful
  • 棉花糖

好吧,我刚刚发现MarshMallow项目提供了一个名为'ModelSchema'的类,它从我的SQLAlchemy Model中读取所有字段并提供一个完全自动化(de)的序列化器.

在我的例子中,我创建了一个"GUID"字段,它与RDBM无关,并将其插入我的Sqlalchemy模型,如下所示:

from flask.ext.sqlalchemy import SQLAlchemy
from flask_wiki.backend.custom_fields import GUIDField

class Page(db.Model):
    """
    Implements the Page Model.
    """
    guid = db.Column(GUIDField, primary_key=True, default=uuid.uuid4)
    name = db.Column(db.String, nullable=False)
    raw_content = db.Column(db.Text)
    rendered_content = db.Column(db.Text)

    def __repr__(self):
        return self.__str__()

    def __str__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

GUIDField以这种方式实现:

from sqlalchemy.types import TypeDecorator, CHAR
import uuid


class GUIDField(TypeDecorator):
    # Platform independent GUID Implementation that uses little endianess.
    impl = CHAR

    def load_dialect_impl(self, dialect):
        return dialect.type_descriptor(CHAR(32))

    def process_bind_param(self, value, dialect):
        if value is …
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy marshmallow

4
推荐指数
1
解决办法
5725
查看次数

如何使用 Python 请求模块在 Moodle Rest WS 中创建用户?

我正在尝试使用 Moodle Webservices - Rest Server 创建一个用户,但我陷入了参数验证:S 我的代码如下:

\n\n
import requests\n\ntoken = \'TOKENNUMBER\'\nfunction = \'core_user_create_users\'\n\n\nurl = \'http://localhost/webservice/rest/server.php?wstoken={0}&wsfunction={1}&moodlewsformat=json\'.format(token,function)\n\nuser1 = {\'email\': \'email@local.host\',\'firstname\': \'firstname\',\n\'lastname\': \'lastname\', \'createpassword\': 1,\n\'username\': \'username\'}\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,我尝试发布数据(两种不同的方式):

\n\n
requests.post(url,data={\'users\': user1})\nrequests.post(url,data={\'users\': [user1,]})\n
Run Code Online (Sandbox Code Playgroud)\n\n

Moodle 保持返回错误:

\n\n
Only arrays accepted. The bad value is: \\\'username\\\'</DEBUGINFO>\n
Run Code Online (Sandbox Code Playgroud)\n\n

在文档(可从自己的moodle获取)中,它指出:

\n\n
Argumentos\nusers (Obrigat\xc3\xb3rio)\n\n\nEstrutura geral\n\nlist of ( \nobject {\nusername string   //Username policy is defined in Moodle security config.\npassword string  Opcional //Plain text password consisting of any characters\ncreatepassword int  Opcional //True if password should be created and …
Run Code Online (Sandbox Code Playgroud)

python rest web-services moodle python-requests

4
推荐指数
1
解决办法
1609
查看次数