假设我们有以下javascript对象:
ahash = {"one": [1,2,3], "two": [4,5,6]}
Run Code Online (Sandbox Code Playgroud)
有没有函数,它返回对象中第一个键的值?(我不知道密钥名称,我只想获得第一把钥匙的价值).
默认情况下,在Django-admin中有用户,组和站点应用程序.如何删除群组和网站?
我试图admin.autodiscover()
从根网址中删除.然后,当我admin.site.register(User, UserAdmin)
在我的应用程序模型中添加某些内容时,我得到了一个AlreadyRegistered
例外(这是相当正确的 - 模型用户已在django.contrib.auth中注册).
这是简单的代码:
import sys
class EmptyArgs(StandardError):
pass
if __name__ == "__main__":
#first way to raise exception
if len(sys.argv) == 1:
raise EmptyArgs
#second way to raise exception
if len(sys.argv) == 1:
raise EmptyArgs()
Run Code Online (Sandbox Code Playgroud)
哪种方式"更"正确?两者都有效.
注意:在我的实际代码中,异常与我声明的完全相同:没有消息和参数.
我在Python电子邮件模块的帮助下生成电子邮件.
以下是几行代码,它们演示了我的问题:
msg = email.MIMEMultipart.MIMEMultipart('alternative')
msg['From'] = "somemail@somedomain.com"
msg.as_string()
Out[7]: 'Content-Type: multipart/alternative;\n boundary="===============9006870443159801881=="\nMIME-Version: 1.0\nFrom: somemail@somedomain.com\n\n--===============9006870443159801881==\n\n--===============9006870443159801881==--'
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,这里的一切都很好,从字段中包含电子邮件蚂蚁很酷.但是,如果我想在电子邮件之前添加一些名称呢?特别是unicode one:
In [8]: u.get_full_name()
Out[8]: u'\u0414\u0438\u043c\u0430 \u0426\u0443\u043a\u0430\u043d\u043e\u0432'
In [9]: msg = email.MIMEMultipart.MIMEMultipart('alternative')
In [10]: msg['From'] = "%s <%s>" % (u.get_full_name(), "email@at.com")
In [11]: msg.as_string()
Out[11]: 'Content-Type: multipart/alternative;\n boundary="===============5792069034892928634=="\nMIME-Version: 1.0\nFrom: =?utf-8?b?0JTQuNC80LAg0KbRg9C60LDQvdC+0LIgPGVtYWlsQGF0LmNvbT4=?=\n\n--===============5792069034892928634==\n\n--===============5792069034892928634==--'
Run Code Online (Sandbox Code Playgroud)
在这里你可以看到,所有的字符串(名称,电子邮件)都是用base64编码的(甚至是非常合乎逻辑的,MIMEMultipart将如何知道该字符串包含unicode和非unicode部分).
所以,我的问题是:我怎么告诉电子邮件模块让我很漂亮"从"标题如下:
From: =?UTF-8?B?0JLQmtC+0L3RgtCw0LrRgtC1?= <admin@notify.vk.com> ?
另外,我学到了一点RFC2822(http://www.faqs.org/rfcs/rfc2822.html,p.3.6.2).它说:
始发者字段指示消息源的邮箱."发件人:"字段指定消息的作者,即负责编写消息的人员或系统的邮箱."发件人:"字段指定负责实际传输消息的代理的邮箱.例如,如果秘书要为另一个人发送消息,则秘书的邮箱将出现在"发件人:"字段中,而实际作者的邮箱将出现在"发件人:"字段中.如果消息的发起者可以由单个邮箱指示并且作者和发送器相同,则不应使用"发件人:"字段.否则,两个字段都应该出现.
这是否意味着我应该将这两个标题结合起来?(来自和发件人).我有点困惑,因为我注意到我的Gmail中有很多电子邮件(通过"显示原始文件"查看),其中显示了来自字段名称和电子邮件.
感谢帮助.
在我的客户端应用程序 - 用javascript和jQuery编写 - 我有一个函数,我正在使用DELETE方法向我的服务器执行$ .ajax请求.
代码是这样的:
this.delete_one = function(id){
console.log(id);
$.ajax({
url: sitesCtrl.url,
type: "delete",
dataType: 'json',
data: {"id": id},
success: function(data){
if (data.success){
$("sitesList").remove("#" + id + "\"");
}
else{
console.log(data.message);
}
},
error: function(){
console.log("internal error");
}
})
};
Run Code Online (Sandbox Code Playgroud)
问题是服务器获取没有参数"id"的请求!只是一个简单的DELETE(根据firebug).通过PUT,POST或GET它可以很好地工作.
我正在尝试使用下一个API方法:https://msdn.microsoft.com/office/office365/APi/mail-rest-operations#SendMessages.发送没有附件的邮件很好,但我无法理解如何发送带附件的邮件.
根据文档,Message
结构可以包含Attachments
类型为https://msdn.microsoft.com/office/office365/APi/complex-types-for-mail-contacts-calendar#RESTAPIResourcesFileAttachment的项目的数组.问题出在现场ContentBytes
- 在向此API方法发送请求之前,不可能将字节转储到JSON(实际上将任何BLOB转储到JSON是无稽之谈).
我应该如何Attachments
使用REST API?
谢谢.
我遇到了下一个问题:
在我们的数据库中,我们有带有id的对象,如4040956363970588323.我正在jQuery上编写一些客户端向导,用于与这些对象进行交互.客户端通过Ajax请求接收有关对象的基础数据,如:
$.ajax({
url: "/api/pages/",
type: "get",
dataType: "json",
data: {"id": site_id},
success: function(data){
if (data.success){
for (var pidx in data.pages){
console.log(data.pages[pidx].id);
var li = $('<li class="ui-widget-content"></li>');
var idf = $('<input type="hidden" id="pid" value="{0}"/>'.format(data.pages[pidx].id))
var urlf = $('<input type="hidden" id="purl" value="{0}"/>'.format(data.pages[pidx].url))
li.text(data.pages[pidx].title);
li.append(idf);
li.append(urlf);
$("#selectable_pages_assign").append(li);
}
pages_was = $("#selectable_pages_assign>li");
}
else
updateTips(data.message);
},
error: function(){
updateTips("Internal erro!");
}
})
Run Code Online (Sandbox Code Playgroud)
所以,正如你所看到的,我发送的数据就像JSON对象(一些服务器代码):
return HttpResponse(dumps({
"success": True,
"pages": [{"id": page.id, "title": page.title, "url": page.image} for page in …
Run Code Online (Sandbox Code Playgroud) 下面是两个简单的python函数。首先尝试连接到test.com
666上的域(主机名有效但端口无效)。第二次尝试连接到imap.mail.outlook.com
端口 993(主机名有效,但看起来不供公共使用/访问)。
def fn_outlook(timeout):
try:
socket.create_connection(("imap.mail.outlook.com", 993), timeout=timeout)
except socket.timeout:
pass
def fn_test(timeout):
try:
socket.create_connection(("test.com", 666), timeout=timeout)
except socket.timeout:
pass
Run Code Online (Sandbox Code Playgroud)
这是该函数具有不同超时的执行时间:
In [14]: %time fn_test(1)
CPU times: user 644 µs, sys: 1.07 ms, total: 1.71 ms
Wall time: 1 s
In [15]: %time fn_test(2)
CPU times: user 589 µs, sys: 1.15 ms, total: 1.74 ms
Wall time: 2 s
In [16]: %time fn_outlook(2)
CPU times: user 838 µs, sys: 2.24 ms, total: 3.08 ms
Wall time: …
Run Code Online (Sandbox Code Playgroud) SQLAlchemy 版本:1.2.10,PostgreSQL 版本:10 多岁。
我正在关注这里的文档示例
In [1]: import sqlalchemy as sa
In [2]: from nimble_core.backend.persistence.pg import PG_META_DATA
In [3]: data_table = sa.Table('data_table', PG_META_DATA,
...: sa.Column('id', sa.Integer, primary_key=True),
...: sa.Column('data', sa.JSON)
...: )
In [4]: data_table.create()
In [5]: with PG_ENGINE.connect() as conn:
...: conn.execute(
...: data_table.insert(),
...: data = {"key1": "value1", "key2": "value2"}
...: )
...:
Run Code Online (Sandbox Code Playgroud)
在哪里:
In [10]: PG_ENGINE
Out[10]: Engine(postgresql://nimble:***@localhost:5432/nimble)
In [11]: PG_META_DATA
Out[11]: MetaData(bind=Engine(postgresql://nimble:***@localhost:5432/nimble))
In [12]: PG_META_DATA.sorted_tables
Out[12]:
[Table('data_table', MetaData(bind=Engine(postgresql://nimble:***@localhost:5432/nimble)), Column('id', Integer(), table=<data_table>, primary_key=True, nullable=False), Column('data', …
Run Code Online (Sandbox Code Playgroud) 这是我的HTML代码的一部分(标有django-template语言变量的视频网址):
<div class="mainPlayer">
<object width="580" height="326">
<param name="movie" value="{{main_video.video_url}}"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="{{main_video.video_url}}" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="326"></embed>
</object>
</div>
Run Code Online (Sandbox Code Playgroud)
和JS代码(使用jQuery 1.4.x)
$(document).ready(function(){ .....
$(".activeMovie img").live("click", function(){
video_url = ($(this).parent().find('input').val());
$('.mainPlayer').find('param:eq(0)').val(video_url);
$('.mainPlayer').find('embed').attr('src', video_url);
})
...
})
Run Code Online (Sandbox Code Playgroud)
这样的算法在ff 3.6.3中运行良好,但在chrome4或opera 10.x.中没有运气,src
并且value
被更改,但是youtube播放器仍然显示旧视频.
python ×5
jquery ×3
javascript ×2
django ×1
django-admin ×1
email ×1
exception ×1
office365api ×1
postgresql ×1
python-2.7 ×1
sockets ×1
sqlalchemy ×1
youtube ×1