我需要将JSON从客户端POST到服务器.我正在使用Python 2.7.1和simplejson.客户端正在使用请求.服务器是CherryPy.我可以从服务器获取硬编码的JSON(代码未显示),但是当我尝试将JSON发送到服务器时,我得到"400 Bad Request".
这是我的客户端代码:
data = {'sender': 'Alice',
'receiver': 'Bob',
'message': 'We did it!'}
data_json = simplejson.dumps(data)
payload = {'json_payload': data_json}
r = requests.post("http://localhost:8080", data=payload)
Run Code Online (Sandbox Code Playgroud)
这是服务器代码.
class Root(object):
def __init__(self, content):
self.content = content
print self.content # this works
exposed = True
def GET(self):
cherrypy.response.headers['Content-Type'] = 'application/json'
return simplejson.dumps(self.content)
def POST(self):
self.content = simplejson.loads(cherrypy.request.body.read())
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有两个分支,开发和生产.每个都有依赖关系,其中一些是不同的.开发指向本身正在开发的依赖项.同样适用于生产.我需要部署到Heroku,它希望每个分支的依赖关系都在一个名为'requirements.txt'的文件中.
组织的最佳方式是什么?
我想到的是:
我在Python工作.最近,我发现了一个名为fn的精彩小包.我一直在用它来进行功能组合.
例如,而不是:
baz(bar(foo(x))))
Run Code Online (Sandbox Code Playgroud)
用fn,你可以写:
(F() >> foo >> bar >> baz)(x) .
Run Code Online (Sandbox Code Playgroud)
当我看到这个时,我立刻想到了Clojure:
(-> x foo bar baz) .
Run Code Online (Sandbox Code Playgroud)
但请注意,在Clojure中,输入位于左侧.我想知道这在python/fn中是否可行.
我正在使用熟悉的事件采购模式构建服务:
就我而言,第5步分为两部分.事件将写入事件日志.后台进程从事件日志中读取并发布从偏移量开始的所有事件.
在某些情况下,除了与聚合相关的事件之外,我还需要发布副作用.就系统而言,这些也是事件,因为它们被其他服务消耗并影响其他服务的状态.但是,它们不会影响此服务中聚合的历史记录,也不需要重建它.
我该如何在代码中处理这些?
选项1-不要将副作用事件写入事件日志.在步骤5之前的主要过程中发布这些内容.
选项2-将所有内容写入事件日志,并在加载历史记录时忽略副作用事件.(这些不是历史的一部分!)
选项3-将副作用事件写入虚拟聚合,以便发布它们,但从不加载.
选项4-?
在第一个选项中,如果存在并发冲突,则可能会出现问题.如果在步骤5中写入失败,则副作用不能轻易回滚.第二个选项写入不属于聚合历史记录的事件.在步骤2中加载时,必须忽略这些副作用事件.第三种选择感觉就像一个黑客.
哪一项似乎对你好?