小编Two*_*ist的帖子

从__future__导入absolute_import实际上做了什么?

我已经回答了一个关于Python绝对导入的问题,我认为我在阅读Python 2.5更新日志和随附的PEP时理解了这一点.但是,在安装Python 2.5并尝试制作正确使用的示例时from __future__ import absolute_import,我意识到事情并不那么清楚.

直接从上面链接的更改日志,这句话准确地总结了我对绝对导入更改的理解:

假设你有一个像这样的包目录:

pkg/
pkg/__init__.py
pkg/main.py
pkg/string.py
Run Code Online (Sandbox Code Playgroud)

这定义了一个名为pkg包含pkg.mainpkg.string子模块的包.

考虑main.py模块中的代码.如果它执行语句会发生什么import string?在Python 2.4和更早的版本,它会先在包的目录进行相对进口看,发现包装/ string.py,导入该文件的内容pkg.string模块,并且该模块被绑定到名字"string"pkg.main模块的名称空间.

所以我创建了这个确切的目录结构:

$ ls -R
.:
pkg/

./pkg:
__init__.py  main.py  string.py
Run Code Online (Sandbox Code Playgroud)

__init__.py并且string.py是空的.main.py包含以下代码:

import string
print string.ascii_uppercase
Run Code Online (Sandbox Code Playgroud)

正如所料,使用Python 2.5运行它失败了AttributeError:

$ python2.5 pkg/main.py
Traceback (most recent call last):
  File "pkg/main.py", line 2, in <module>
    print string.ascii_uppercase
AttributeError: …
Run Code Online (Sandbox Code Playgroud)

python python-2.5 python-import python-2.7

139
推荐指数
2
解决办法
8万
查看次数

如何使用selenium将chrome webdriver中的所有声音静音

我想编写一个脚本,其中我使用selenium包,如下所示:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.youtube.com/watch?v=hdw1uKiTI5c")
Run Code Online (Sandbox Code Playgroud)

在获得所需的URL后,我想将Chrome声音静音.我怎么能这样做?这样的事情:

driver.mute()
Run Code Online (Sandbox Code Playgroud)

是否可以与任何其他Web驱动程序?像Firefox或......?

python selenium

20
推荐指数
2
解决办法
5363
查看次数

将变量从django模板传递到视图

我正在使用django 1.7构建我的第一个站点,并且很难弄清楚如何将变量从点击传递到视图.我的GET也是空的.

我的模板有一个带有Facebook帐户ID的表格,点击后应显示用户管理员的Facebook页面列表.

我的模板:

{% for SocialAccount in accountlist %}
   <tr>
      <td><a href="{% url 'INI:fbpages' %}">{{ SocialAccount.uid }}</a></td>
      <td>{{ SocialAccount.extra_data.first_name }}</td>
      <td>{{ SocialAccount.extra_data.last_name }}</td>
      <td>{{ SocialAccount.extra_data.email }}</td>
   </tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

和我的观点:

def fbpages(request, fbuser):
    djuser = request.user.id
    context = RequestContext(request)
    fbuser = 1234634
    pagelist = facebook.pages(request, djuser, fbuser)
    blocks = {'title': 'Facebook Pages',
          'pagelist': pagelist}
    return render(request, "initiative/ListFBPages.html", blocks)
Run Code Online (Sandbox Code Playgroud)

如果我将ID放在URL中但我不想在URL中公开页面/用户ID,我可以轻松地做到这一点.我觉得这是一个简单的解决方案,但我还没弄清楚.

谢谢你的帮助.

django

18
推荐指数
1
解决办法
4万
查看次数

javascript在嵌套数组中查找子对象

我有一个像下面的javascript结构(嵌套的对象数组)

var categoryGroups = [
    {
        Id: 1, Categories: [
            { Id: 1 },
            { Id: 2 }, 
        ]

    },
    {
        Id: 2, Categories: [
            { Id: 100 },
            { Id: 200 },
        ]

    }
]
Run Code Online (Sandbox Code Playgroud)

我想找到一个匹配Id的子类别对象,假设类别ID都是唯一的.

我在下面有这个,但是想知道是否有更简洁的方法:

var category, categoryGroup, found = false;
for (i = 0; i < categoryGroups.length ; i++) {
    categoryGroup = categoryGroups[i];
    for (j = 0; j < categoryGroup.Categories.length; j++) {
        category = categoryGroup.Categories[j];
        if (category.Id === id) {
            found = true;
            break;
        }
    } …
Run Code Online (Sandbox Code Playgroud)

javascript arrays

10
推荐指数
3
解决办法
2万
查看次数

我应该完全停止使用内联JavaScript吗?

在关于SO的其他地方的讨论中,我被告知"[m] ost浏览器现在不会执行内联javascript ...".这对我来说是新闻,我一直在研究如何验证这个陈述,以便了解我是否需要调整我维护的某些网站上的代码,以使它们与未来的浏览器兼容.

据我所知,该评论者指的是内容安全策略,这是一个相对较新的提案,如果实施,将限制或完全禁用内联脚本.

但是,我注意到:

我的问题基本上是,我错了#3?内联JavaScript支持是否可能正在逐步推出?


顺便说一句,我在SO上问这个问题,因为我认为它可能是一个"实用的,可回答的问题,这是软件开发所特有的".如果其他人认为这太广泛或属于SE的其他地方,我想听听你的建议.提前致谢!

javascript standards

10
推荐指数
1
解决办法
220
查看次数

Django有没有计划在不久的将来放弃对Python 2的支持?

对于Django中的新项目,是否可以使用Python 2.7,或者我应该从Python 3.x开始预期Python 2支持被停用?

Django大约需要多长时间才能支持Python 2分支?

django python-2.7 python-3.x

10
推荐指数
1
解决办法
1354
查看次数

重复的Django模型实例和指向它的所有外键

我想在Django模型上创建一个方法,调用它model.duplicate(),复制模型实例,包括指向它的所有外键.我知道你可以这样做:

def duplicate(self):
   self.pk = None
   self.save()
Run Code Online (Sandbox Code Playgroud)

...但是这样所有相关模型仍然指向旧实例.

我不能简单地保存对原始对象的引用,因为self在执行方法期间指向更改的内容:

def duplicate(self):
    original = self
    self.pk = None
    self.save()
    assert original is not self    # fails
Run Code Online (Sandbox Code Playgroud)

我可以尝试保存对相关对象的引用:

def duplicate(self):
    original_fkeys = self.fkeys.all()
    self.pk = None
    self.save()
    self.fkeys.add(*original_fkeys)
Run Code Online (Sandbox Code Playgroud)

...但是这会将它们从原始记录转移到新记录.我需要将它们复制并指向新记录.

其他地方的几个答案(在此之前我更新了问题)建议使用Python copy,我怀疑它适用于此模型上的外键,但不适用于指向它的另一个模型上的外键.

def duplicate(self):
    new_model = copy.deepcopy(self)
    new_model.pk = None
    new_model.save()
Run Code Online (Sandbox Code Playgroud)

如果你这样做new_model.fkeys.all()(到目前为止遵循我的命名方案)将是空的.

python django python-2.7

9
推荐指数
1
解决办法
3454
查看次数

使用pip冻结忽略某些包及其依赖项

标题基本上都说明了一切.我怎么能告诉pip freeze忽略某些包,喜欢pylintpep8,和它们的依赖?

python pip

8
推荐指数
2
解决办法
3811
查看次数

Django:如何计算查询集并返回切片而不会两次击中DB?

我的API中有这部分代码,最近已成为一个瓶颈:

total = results.count()
if request.GET.has_key('offset'):
    offset = int(request.GET.get('offset').strip())
    results = results.order_by('name')[100*offset:100*(offset+1)]
people = list(results)
Run Code Online (Sandbox Code Playgroud)

请注意,这results是所有人的查询集,并且offset是用于分页的参数.

在这里我可以看到,当我打印connection.queries,我的数据库中获取由打两.count()list(results).之所以.count()必须处于最顶端是因为我需要所有人的长度(不是100).有没有办法解决这个问题?

python mysql django

8
推荐指数
1
解决办法
759
查看次数

不能'git push'到Heroku

我不能git push以正常的方式从我家到Heroku.我尝试在不同的应用程序上使用两个不同的帐户(家庭和工作),使用不同的ssh密钥.这不是一个损坏的回购,因为它可以在我的工作计算机上运行.(事实上​​,我通常会通过ssh工作和从那里进行部署来解决这个问题,但是那里的力量已经消失了,所以本周末我不能这样做!)

首先,这与其他几十个类似的问题不同,主要是因为我没有收到任何错误.

错误(非)消息

$ git push heroku master
Connection closed by 50.19.85.132
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

请注意,它会在连接关闭之前正好挂起60秒,并显示此信息.

$ git push -v heroku master
Pushing to git@heroku.com:myherokuapp.git
Connection closed by 50.19.85.154
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)

我试过的

  • heroku keys:add - 命令成功,密钥被添加到我的帐户(在heroku.com上显示,我收到电子邮件),但没有任何变化.

  • 完全重新生成密钥.与上述相同.

  • heroku …

git ssh heroku

6
推荐指数
1
解决办法
2174
查看次数