一个用于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为什么不向处理程序调用isEnable?   java如何通过Android Studio添加库   java用鼠标单击绘制多边形不工作?   在Java中通过注释验证方法参数   如何在Windows(ffmpeg等)中使用Java快速拍摄桌面截图?   语言不可知论Java或编程中的break语句是必不可少的吗?   joptionpane的java尝试捕获错误   amazon web服务AWS Java SDK SSL证书   在JUnit测试中使用事务注释时,java数据不会保存在DB中   java数组输出问题?   SpringMVC文档使用JavaAPI信封API。getDocument返回空异常   java在警报对话框微调器中等待输入   使用Java突出显示Html中的文本   Java中的字符串搜索算法   Java实现一种递归方法,该方法遍历树分支以生成位代码(哈夫曼编码)   java我如何给JTextPane一个不同于主JFrame的宽度?