一个用于activipy的postgresql环境

activipy-pgsql的Python项目详细描述


使用postgresql作为activitystream数据存储的activipy环境 物体。


activipy module启用 在中使用ActivityStreams 您的应用程序,包括对不同“环境”的支持 扩展功能。

这个包提供了一个“pgsql”环境,它将存储方法映射到 使用psycopg2的postgresql查询。对象数据使用jsonb存储 数据类型以简化架构并提供最大性能。

示例代码

打开数据库:

>>> from activipy import core, vocab
>>> from activipy.pgsql import pgsql
>>> db = pgsql.JsonPgSQL.open(
... host="<db_server>", dbname="<db_name>",
... user="<db_user>", password="<db_user_pass>")
>>> env = pgsql.PgSQLNormalizedEnv

创建新记录并保存到数据库:

>>> post_this = core.ASObj({
...     "@type": "Create",
...     "@id": "http://tsyesika.co.uk/act/foo-id-here/",
...     "actor": {
...         "@type": "Person",
...         "@id": "https://tsyesika.co.uk/",
...         "displayName": "Jessica Tallon"},
...     "to": ["acct:cwebber@identi.ca",
...            "acct:justaguy@rhiaro.co.uk",
...            "acct:ladyaeva@hedgehog.example"],
...     "object": {
...         "@type": "Note",
...         "@id": "https://tsyesika.co.uk/chat/sup-yo/",
...         "content": "Up for some root beer floats?"}},
... pgsql.PgSQLNormalizedEnv)
>>> post_this.m.save(db)
{'@type': 'Create',
 '@id': 'http://tsyesika.co.uk/act/foo-id-here/',
 'actor': 'https://tsyesika.co.uk/',
 'to': ['acct:cwebber@identi.ca',
        'acct:justaguy@rhiaro.co.uk',
        'acct:ladyaeva@hedgehog.example'],
 'object': 'https://tsyesika.co.uk/chat/sup-yo/'}

注意在这个例子中记录是如何被规范化的。在这种环境下 actor和object在单独的记录中创建,并生成引用 在父记录中。要检索原始的非规范化表单:

>>> normalized_post = pgsql.pgsql_fetch(
... "http://tsyesika.co.uk/act/foo-id-here/", db, env)
>>> normalized_post.m.denormalize(db)
<ASObj Create "http://tsyesika.co.uk/act/foo-id-here/">
>>> normalized_post.m.denormalize(db).json()
{'to': ['acct:cwebber@identi.ca',
        'acct:justaguy@rhiaro.co.uk',
        'acct:ladyaeva@hedgehog.example'],
 '@id': 'http://tsyesika.co.uk/act/foo-id-here/',
 '@type': 'Create',
 'actor': {'@id': 'https://tsyesika.co.uk/',
           '@type': 'Person',
           'displayName': 'Jessica Tallon'},
 'object': {'@id':
            'https://tsyesika.co.uk/chat/sup-yo/',
            '@type': 'Note',
            'content': 'Up for some root beer floats?}}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java创建一个数组和一个函数,允许从数组中删除零   java仅为一个函数使用后台   java为什么我看不到Android应用程序的布局?   如何使用Java通过重定向到SAML登录   java从列表中获取连续对   java在spring的构造函数中使用自动连线依赖项   java Libgdx如何设置复选框和文本标签之间的空间   xml-java。util。日期至xmlgoriancalendar   用ddlutils转换数据库的java问题   java我能在main方法中写“public int I=0”吗?   java JPA模拟hibernate的LobCreator?   使用本地变量的单例java安全发布   java videoview未在设备上显示,也未进行xml设计,   spring boot测试如何使用java api将Ldif文件中的默认数据添加到Ldap服务器?   如何在java中获取XML文件中节点的完整路径?   java只使用不同ArrayList中的一个字段搜索具有多个字段的ArrayList