从复杂的自定义对话框(例如,文本字段,日期或时间选择器,一堆单选按钮等)以及"保存"和"取消"按钮将值返回到调用活动的"正确"方法是什么?
我在网上看到的一些技术包括:
Dialog派生类中的公共数据成员,可以由Activity读取
公共"获取"访问者..."......" ."
有意向启动的对话框(而不是显示() ),加上在对话框类处理它采取从各种控制输入和捆绑起来传递回活动,所以当听众打"保存"捆绑传回使用 ReturnIntent()
Activity中的监听器处理对话框中控件的输入,例如,TimePicker或DatePicker的监听器实际上在Activity中.在这个方案中,几乎所有的工作都在活动中完成
"活动"中的一个监听器为"保存"按钮,然后活动直接询问对话框中的控件; 活动解除了对话框.
......加上我已经忘记的更多.
是否有一种被认为是规范正确或"最佳实践"方法的特定技术?
我正在向一个Django服务器发送一个带有JSON主体的POST请求(相当标准).在服务器上我需要使用解码json.loads().
问题是我如何以字符串格式获取请求的主体?
我目前有以下代码:
body_data = {}
if request.META.get('CONTENT_TYPE', '').lower() == 'application/json' and len(request.body) > 0:
try:
body_data = json.loads(request.body)
except Exception as e:
return HttpResponseBadRequest(json.dumps({'error': 'Invalid request: {0}'.format(str(e))}), content_type="application/json")
Run Code Online (Sandbox Code Playgroud)
但是,这会产生错误the JSON object must be str, not 'bytes'.
如何应用正确的编码来检索请求的正文作为字符串?
我一直在研究Amazon Lightsail,但有一件事我无法找到任何信息.
实例是否自动管理和更新?特别是,我想到OS/Web服务器安全更新.
使用EC2,我必须不时登录以执行操作系统升级,更新和安装安全补丁.这对于EC2来说很好,但我现在正在设置一个VPS,我基本上可以安装和忘记,至少在系统方面.
如果这是在错误的网站上,请道歉,但毕竟这里有一个amazon-lightsail标签.
我正在尝试or使用MongoEngine和django.db.models.Q类构造一个简单的查询.
我的代码(从中运行./manage.py shell)是:
from db.models import User
from django.db.models import Q
User.objects.filter(Q(username='foo') | Q(email='bar'))
Run Code Online (Sandbox Code Playgroud)
我models.py只是
from mongoengine import *
class User(Document):
username = StringField()
email = StringField()
Run Code Online (Sandbox Code Playgroud)
我尝试了几个不同的版本,并始终得到以下错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "venv/lib/python2.7/site-packages/mongoengine/queryset/base.py", line 193, in filter
return self.__call__(*q_objs, **query)
File "venv/lib/python2.7/site-packages/mongoengine/queryset/base.py", line 109, in __call__
raise InvalidQueryError(msg)
InvalidQueryError: Not a query object: (OR: ('username', 'foo'), ('email', 'bar')). Did you intend to …Run Code Online (Sandbox Code Playgroud)