小编Spa*_*ide的帖子

在Flask或WSGI中打印原始HTTP请求

我正在调试我构建的微控制器,它逐行写入原始HTTP请求.我正在使用Flask作为后端,我希望看到整个请求,因为它以这种格式显示:

GET / HTTP/1.1
Content-length: 123
User-agent: blah
...
Run Code Online (Sandbox Code Playgroud)

我知道Flask基于WSGI.反正有没有让它与Flask一起工作?

python wsgi flask

36
推荐指数
6
解决办法
5万
查看次数

Python基线校正库

我目前正在使用一些拉曼光谱数据,我正在尝试纠正由于荧光偏斜引起的数据.看看下面的图表:

在此输入图像描述

我非常接近实现我的目标.正如你所看到的,我试图在我的所有数据中拟合多项式,而我应该只是在局部最小值处拟合多项式.

理想情况下,我希望有一个多项式拟合,当从我的原始数据中减去时,会得到类似这样的结果:

在此输入图像描述

是否有任何内置的库已经这样做了吗?

如果没有,可以为我推荐任何简单的算法吗?

python signal-processing numpy scipy

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

yield_per期间sqlalchemy游标错误

我收到以下错误:

Traceback (most recent call last):
    main()
    for item in session.query(Item).yield_per(10):
    fetch = cursor.fetchmany(self._yield_per)
    self.cursor, self.context)
    l = self.process_rows(self._fetchmany_impl(size))
    row = self._fetchone_impl()
    self.__buffer_rows()
    self.__rowbuffer = collections.deque(self.cursor.fetchmany(size))
sqlalchemy.exc.ProgrammingError: (ProgrammingError) named cursor isn't valid anymore None None
Run Code Online (Sandbox Code Playgroud)

我怀疑调用session.commit()会干扰.yield_per

sessionmaker_ = sessionmaker(autocommit=False, autoflush=False, bind=engine)
session = scoped_session(sessionmaker_)

def foo(item):
  # DO something to the item 
  session.add(item)
  session.commit()

def main():
  for item in session.query(Item).yield_per(5):
    foo(item)
Run Code Online (Sandbox Code Playgroud)

任何的想法?

python sqlalchemy

13
推荐指数
2
解决办法
4863
查看次数

如果您没有开始使用alembic/flask-migrate,如何添加迁移现有数据库?

这是已经发生的事件链

  • 第0天:我开发并部署了我的应用程序
  • 第1天:我创建了新数据库
  • 第3天:我意识到我想在现有表中添加一个新行.我发现了flask-migrate,我想用它来迁移我的数据库.

目前我在第3天

如果从第0天开始,有很多关于如何让Flask-migrate运行的文档.你只需要打电话flask db init,flask db migrate然后flask db upgrade.

但是,就我而言,它有点不同.我运行了命令,我的第一个版本的迁移是空的.然后我修改了我的数据库模式并生成了一个新的迁移.现在,我的最新迁移只有一行迁移,即将新行添加到表中.

我意识到我的迁移都没有创建数据库的实际模式,这应该是您在第1天开始进行flask-migrate时看到的第一个迁移.

如果我要从头开始克隆我的仓库:

flask db migrate会导致alembic.util.exc.CommandError: Target database is not up to date..

flask db upgrade会导致sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "offer" does not exist.

我该怎么做才能解决这个问题?

alembic flask-migrate

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

为什么google chrome不打印我的XPath查询的文本()?

我试图$x('//td[@class="first"]/a/text()')在Chrome中提取xpath查询的文本,但是当我运行此命令时,我看到的text是与锚链接的实际文本值相反.

当我跑步时,s.toString()我正在看[object Text],[object Text],[object Text],[object Text]....

如何在xpath中获取其字符串值?

xpath google-chrome

8
推荐指数
3
解决办法
4942
查看次数

Python 类型提示:如何在项目范围内强制实施?

我的整个团队相信 Python 中的类型提示将帮助我们构建更易于维护的代码。每个人都参与在我们整个项目中实施类型提示。

使用 mypy 一周后,我们意识到 mypy 并没有真正提醒您实现类型提示。如果您忘记实现类型提示,mypy 不会发出警告。理想情况下,我们想要类似于 flake8 的东西,可以在出现不良行为时检查并警告开发人员。

您的组织如何强制(尽可能多地)跨 Python 项目进行类型提示?

如果重要的话,我们使用带有 Python 扩展的 Visual Studio。

python mypy

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

将模板字符串传递给 Jinja 宏

我想从宏渲染模板字符串。我尝试使用以下宏来执行此操作,该宏使用 呈现模板{{ comment|safe }},但模板中的变量(例如,按{{ name }}字面呈现而不是使用name. 如何在宏参数中允许可变数据?

{% macro comment_el(image_url, name, comment) %}
  <div class="media no-border-top">
    <div class="media-left">
      <a href="{{ outgoing_url }}" >
        <img class="media-object" src="{{ image_url }}" />
      </a>
    </div>
    <div class="media-body">
      <h4 class="media-heading"><a href="{{ outgoing_url }}" >{{ name }}</a></h4>
      <p>{{ comment|safe }}</p>
    </div>
  </div>
{% endmacro %}
Run Code Online (Sandbox Code Playgroud)
{{ comment_el(
    url_for("static", filename="img/c01.jpg"),
    "Some Name",
    "This comment is amazing. All I want to say is that {{ name }} is an amazing person"
) …
Run Code Online (Sandbox Code Playgroud)

python jinja2 flask

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

python pprint嵌套字典换行每个嵌套?

我有以下数据结构:

{'row_errors': {'hello.com': {'template': [u'This field is required.']}}}
Run Code Online (Sandbox Code Playgroud)

当我在python中使用pprint时,我得到了

{'row_errors': {'hello.com': {'template': [u'This field is required.']}}}
Run Code Online (Sandbox Code Playgroud)

但是,我非常希望它像以下一样打印:

{'row_errors': 
    {'hello.com': 
        {'template': [u'This field is required.']}}}
Run Code Online (Sandbox Code Playgroud)

这可以通过pprint配置吗?(我更喜欢pprint,因为我在jinja模板中打印它).

python

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

将 WTForms 与 Enum 一起使用

我有以下代码:

class Company(enum.Enum):
    EnterMedia = 'EnterMedia'
    WhalesMedia = 'WhalesMedia'

    @classmethod
    def choices(cls):
        return [(choice.name, choice.name) for choice in cls]

    @classmethod
    def coerce(cls, item):
        print "Coerce", item, type(item)
        if item == 'WhalesMedia':
            return Company.WhalesMedia
        elif item == 'EnterMedia':
            return Company.EnterMedia
        else:
            raise ValueError
Run Code Online (Sandbox Code Playgroud)

这是我的 wtform 字段:

company = SelectField("Company", choices=Company.choices(), coerce=Company.coerce)
Run Code Online (Sandbox Code Playgroud)

这是在我的表单中生成的 html:

<select class="" id="company" name="company" with_label="">
    <option value="EnterMedia">EnterMedia</option>
    <option value="WhalesMedia">WhalesMedia</option>
</select>
Run Code Online (Sandbox Code Playgroud)

不知何故,当我点击提交时,我不断收到“不是一个有效的选择”。

任何想法为什么?

这是我的终端输出:

当我查看我的终端时,我看到以下内容:

Coerce None <type 'NoneType'>
Coerce EnterMedia <type 'unicode'>
Coerce EnterMedia <type 'str'>
Coerce WhalesMedia …
Run Code Online (Sandbox Code Playgroud)

python enums flask wtforms

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

Celery工人提前退出不会调用on_failure

我有以下代码:

class StatusTask(automata_celery.Task):

  def on_success(self, retval, task_id, args, kwargs):
    with app.app_context():
      cloaker = Cloaker.query.get(args[0])
      cloaker.status = RemoteStatus.LAUNCHED
      db.session.commit()

  def on_failure(self, exc, task_id, args, kwargs, einfo):
    with app.app_context():
      cloaker = Cloaker.query.get(args[0])
      cloaker.status = RemoteStatus.ERROR
      db.session.commit()


@celery.task(base=StatusTask)
def deploy_cloaker(cloaker_id):
  """To prevent launching while we are launching, we will
  disable launching until the cloaker's status is LAUNCHED
  """
  cloaker = Cloaker.query.get(cloaker_id)
  if not cloaker.can_launch():
    return

  cloaker.status = RemoteStatus.LAUNCHING
  db.session.commit()

  host = cloaker.server.ssh_user + '@' + cloaker.server.ip
  execute(fabric_deploy_cloaker, cloaker, hosts=host)


def fabric_deploy_cloaker(cloaker):
  domain = …
Run Code Online (Sandbox Code Playgroud)

python celery

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