小编Sam*_*man的帖子

现在使用async/await是否安全?

现在在Javascript中使用async-await而不是生成器承诺是否安全,知道语法尚未生​​成并将随ES8的发布而来?

我可以指望哪些浏览器可用,以及这种语法不可用的浏览器有多常见?安全我的意思是没有像巴贝尔这样的转发器?

javascript async-await ecmascript-6 ecmascript-2017

48
推荐指数
1
解决办法
2万
查看次数

asyncio.as_completed 如何工作

阅读这个答案,我遇到了 asyncio.tasks.as_completed。我不明白该功能实际上是如何工作的。它被记录为一个非异步例程,按照它们完成的顺序返回期货。它创建一个与事件循环关联的队列,为每个未来添加一个完成回调,然后尝试从队列中获取与期货一样多的项目。

代码的核心如下:

    def _on_completion(f):
        if not todo:
            return  # _on_timeout() was here first.
        todo.remove(f)
        done.put_nowait(f)
        if not todo and timeout_handle is not None:
            timeout_handle.cancel()

    @coroutine
    def _wait_for_one():
        f = yield from done.get()
        if f is None:
            # Dummy value from _on_timeout().
            raise futures.TimeoutError
        return f.result()  # May raise f.exception().

    for f in todo:
        f.add_done_callback(_on_completion)
    if todo and timeout is not None:
        timeout_handle = loop.call_later(timeout, _on_timeout)
    for _ in range(len(todo)):
        yield _wait_for_one()
Run Code Online (Sandbox Code Playgroud)

我想了解这段代码是如何工作的。我最大的问题是:

  • 循环实际上在哪里运行。我没有看到对 loop.run_until_cobmplete 或 loop.run_forever 的任何调用。那么循环如何取得进展呢? …

python python-3.x python-asyncio

7
推荐指数
1
解决办法
6489
查看次数

在分配子关系时避免在刷新后选择

我有以下SQLAlchemy模型:

class Parent(Base):
    id = Column(Integer, primary_key=True)

class Child(Base):
    id = Column(Integer, primary_key=True)
    title = Column(String, nullable=False)
    parent_id = Column(Integer, ForeignKey(Parent.id), nullable=False)

    parent = relationship(Parent, 
                          backref=backref('children',
                                          order_by=id,
                                          cascade='all, delete-orphan'))
Run Code Online (Sandbox Code Playgroud)

然后我想创建一个父母和一些孩子,所有这些都在同一个声明中:

p = Parent()
DBSession.add(p)

# some unrelated code runs which triggers a flush

p.children = [Child(title=title) for title in titles]
Run Code Online (Sandbox Code Playgroud)

p.children =赋值语句触发了一个不需要的SELECT语句,因为SQLAlchemy必须清除任何Child指向该语句的预先存在的对象Parent.我意识到我可以SELECT使用lazy='noload'backref上的选项消除语句,但我需要这种关系在其他上下文中正常运行(即从DB获取结果).

有没有办法我可以创建一个返回noload关系值的属性,如果已经设置,并使用常规关系从DB加载结果?或者我是否正在以正确的方式思考这个问题?

python sqlalchemy

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

尝试访问资源自定义证书和请求时SSLError("坏握手")

我想编写webservices来使用Zeep在Python中交换数据.我只能使用我的证书访问服务.我有PFX证书,但我将其转换为两个.pem文件.

我的代码:

from zeep import Client
from zeep.wsse.signature import Signature 
import requests
from requests import Session
key_filename ='/.files/cert.key.pem'
cert_filename = './files/cert.crt.pem'
session = Session()  
r = requests.get('https:...../PingWs?wsdl',
             cert=(cert_filename, key_filename)) 
print (r)
Run Code Online (Sandbox Code Playgroud)

但我明白了

引发SSLError(e,request = request)requests.exceptions.SSLError:HTTPSConnectionPool(host ='evidim-test.gov.si',port = 443):使用url超出最大重试次数:/ ws/test/PingWs?wsdl(引起通过SSLError(SSLError("坏握手:错误([('SSL例程','tls_process_server_certificate','证书验证失败')],)",),))

python pfx zeep

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

为什么这个ruby方法调用中的空间有意义?

我正在Rails应用程序中编写jsonify视图.我有:

json.samba_secrets_present(not @idp_ad_info.samba_secrets.nil?)
Run Code Online (Sandbox Code Playgroud)

这会产生语法错误:

app/views/idp_ad_infos/show.jsonify:7: syntax error, unexpected tIVAR, expecting '(' 
Run Code Online (Sandbox Code Playgroud)

然而,

json.samba_secrets_present (not @idp_ad_info.samba_secrets.nil?)
Run Code Online (Sandbox Code Playgroud)

工作良好.我原以为第一个方法samba_secrets_presentJsonify::Builder使用第一个参数调用对象上的方法not idp_ad_info.samba_secrets.nil?.为什么空间有意义?

ruby

5
推荐指数
1
解决办法
175
查看次数

nginx中的解析器参数

我使用nginx作为与ELB的reverse_proxy服务器.我正在寻找有关我在nginx.conf文件中设置的解析器值的解释.我的nginx.conf:

http {  
   ...

   resolver x.x.x.x valid=30s;

   ...
}

server {

   ...

   set $elb "example.com";

location / { 
    ...

    rewrite ^/(.*) $1 break;
    proxy_pass http://$elb/$1?$args; 

    ...
   }
   ...    
}  
Run Code Online (Sandbox Code Playgroud)

我按照这个 - https://www.ruby-forum.com/topic/6816375#1166569并将/etc/resolv.conf值设置为解析器值,它工作正常.这背后的是什么?

reverse-proxy nginx resolver

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

SQLAlchemy:如何处理重复条目中的bulk_save_objects()?

在我的项目中,我将 SQLAlchemy 与bulk_save_objects()-function 一起使用。对我来说,这是批量插入大量行的一种又好又快的方法。我已经设置了数据库(当前是 SQLite),因此不需要重复的条目。当我尝试插入大量项目并且不知道是否存在重复条目并且我运行程序 SQLAlchemy 时会引发 IntegrityError 异常,表示存在重复条目。这是我的问题:如何处理bulk_save_objects()重复条目中的 -function ?当我使用add()SQLalchemy 的 - 函数时,很容易在 for 循环中捕获 IntegrityError 异常并忽略它。但add()对于大量项目, - 函数运行速度太慢。

python mysql sqlite sqlalchemy python-2.7

5
推荐指数
1
解决办法
3145
查看次数

在telethon python电报中向联系人发送消息

如何查看我的所有联系人并向他们发送消息?我使用 Telethon(API 电报 python)。

from telethon.tl.functions.contacts import ResolveUsernameRequest
from telethon.tl.types import InputChannelEmpty
from telethon import TelegramClient
from telethon.tl.types.messages import Messages
from telethon.tl.types.contacts import Contacts
api_id = 1****
api_hash = '5fbd2d************************'
client = TelegramClient('arta0', api_id, api_hash)
client.connect()
Run Code Online (Sandbox Code Playgroud)

python api telegram telethon

3
推荐指数
1
解决办法
6520
查看次数

未应用 Python @property setter 中的约束

我有一个非常简单的类,它将温度转换为华氏度,另外它确保值大于 -273

class Celsius:
    def __init__(self, temperature = 0):
        self._temperature = temperature

    def to_fahrenheit(self):
        return (self.temperature * 1.8) + 32

    @property
    def temperature(self):
        print('Getting_value')
        return self._temperature


    @temperature.setter
    def temperature(self, value):
        if value < -273:
            raise ValueError("Temperature below -273 is not possible")
        print("Setting value")
        self._temperature = value
Run Code Online (Sandbox Code Playgroud)

如果我运行以下代码

c = Celsius()
c.temperature=23
c.to_fahrenheit()
Run Code Online (Sandbox Code Playgroud)

我得到预期的输出:

Setting value
Getting_value
Out[89]:
73.4
Run Code Online (Sandbox Code Playgroud)

现在试图将温度设置为 -275,我们得到了预期的错误!

c = Celsius()
c.temperature=-275
c.to_fahrenheit()
Run Code Online (Sandbox Code Playgroud)

-------------------------------------------------- ------------------------- ValueError Traceback (最近一次调用最后一次) in () 1 c =Celsius() ----> 2 c.温度=-275 3 c.to_fahrenheit() …

python python-3.x

2
推荐指数
1
解决办法
658
查看次数