小编Tza*_*ach的帖子

无法在App Engine上捕获MySQLdb.OperationalError

我在Google App Engine上运行了一个Django应用程序.DB不时会引发OperationalError正常情况,但是我的代码虽然使用了try..except,却没有捕获异常(我需要这个用于重试目的).

这是我的代码:

from MySQLdb import OperationalError, DatabaseError

DB_RETRY_EXCEPTIONS = (
    OperationalError,
    DatabaseError,
)

class MyClassView(rest_framework.views.APIView):
    @retry(DB_RETRY_EXCEPTIONS, tries=5, delay=5, logger=logger)
    def dispatch(self, *args, **kwargs):
        try:
            return super(MyClassView, self).dispatch(*args, **kwargs)
        except DB_RETRY_EXCEPTIONS as exp:
            logger.warning("Got %s", exp)
            raise
Run Code Online (Sandbox Code Playgroud)

在异常堆栈跟踪中,我可以看到流程正在通过这段代码,但没有警告.

这是堆栈跟踪的最后几行:

File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/MySQLdb-1.2.4b4/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/MySQLdb-1.2.4b4/MySQLdb/connections.py", line 190, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 38")
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

python mysql django google-app-engine mysql-python

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

将单个文件添加到Sublime Text项目

有没有办法只向Sublime Text项目添加一个文件?

该文件位于包含其他文件和目录的目录中,不应包含在项目中.

sublimetext2 sublimetext3

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

Google App Engine远程API + OAuth

我正在使用GAE远程api来访问我的应用程序的数据存储.GAE的认证是使用remote_api_stub.ConfigureRemoteApi返回用户名和密码的认证功能进行的.

有没有办法使用access_token进行身份验证,例如OAuth或OAuth 2.0?

python google-app-engine oauth-2.0 google-oauth

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

urllib3 on python 2.7 Google App Engine上的SNI错误

我正在尝试使用SNI从我在Google App Engine上托管的网站下载HTTPS页面.无论我使用什么库,我都会收到以下错误:

[Errno 8] _ssl.c:504: EOF occurred in violation of protocol
Run Code Online (Sandbox Code Playgroud)

我尝试过多种方式解决错误,包括使用urllib3 openssl monkeypatch:

from urllib3.contrib import pyopenssl
pyopenssl.inject_into_urllib3
Run Code Online (Sandbox Code Playgroud)

但我总是得到上面提到的同样的错误.

有任何想法吗?

python google-app-engine urllib3 sni

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

按完整路径导入具有类似内部模块名称的python包

在我的项目中,我需要从两个不同的完整路径导入两个外部包.

当我只有一个外部软件包时,我添加了它的路径sys.path并且它工作了,我可以为这两个软件包做到这一点但不幸的是两个软件包都有类似的内部模块,所以如果我将它们都添加到sys.path它们中它们将交叉导入每个软件包的内部模块其他.

为了澄清,包的文件夹结构如下所示:

package1\
  __init__.py
  settings.py
  a.py # does 'import settings'

package2\
  __init__.py
  settings.py
  b.py # also does 'import settings'
Run Code Online (Sandbox Code Playgroud)

如何在没有冲突的情况下导入两个包?我尝试过使用imp.load_source但看起来它只能加载文件.

编辑: 当我只有一个包时,我会使用以下代码从中导入:

sys.path.insert(1, "PATH TO PACKAGE1")
from package1 import a
Run Code Online (Sandbox Code Playgroud)

编辑2: 包的目录结构实际上比上面的那个复杂得多,并且包含数百个文件.还有可导入的内部模块,settings.py例如:

package1\
  __init__.py
  settings.py
  internal_module\
    __init__.py
    a.py # does 'import settings'
Run Code Online (Sandbox Code Playgroud)

这意味着我无法假设a.py并且settings.py在同一目录中.

python python-import

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

"Modernizr未定义"

我的应用程序包括在结束<head>标记之前的Modernizr(与prefixfree连接),以及在结束标记之前的其余js <body>.99.9%的时间这个工作正常,但有时我得到Modernizr is not defined.

导致错误的代码是:

if(!Modernizr.csscalc) {
  // do stuff
}
Run Code Online (Sandbox Code Playgroud)

这个错误发生在真实的客户端上(我通过电子邮件收到通知),所以我没有比这个错误字符串更多的数据.即使在相同的操作系统和浏览器上,我也无法重现它.

我不清楚这个零星错误可能是什么原因造成的.你能指点我吗?我在这里做错了吗?

javascript modernizr

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

dev_appserver.py不加载appengine_config.py

我有一个在本地运行的App Engine应用程序dev_appserver.py.在app目录中,我有标准appengine_config.py,应该在对应用程序发出的每个请求上执行.在过去它曾用于执行模块,但突然间它停止了这样做.

在另一个应用程序运行在同一台机器上它工作正常.

我检查过程监视器,看看文件是否从另一个位置加载,但它不是(我可以看到正在加载其他应用程序的文件).

任何想法为什么appengine_config.py不执行?

python google-app-engine

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

Django非唯一用户名字段警告

在我的 django 应用程序中,我有一个自定义用户模型,其中包含一个名为my_username. 最近我使这个领域变得非唯一(实际上它现在unique_together是另一个领域)。这使得 django 在 中发出以下警告manage.py

(auth.W004) 'MyUser.my_username' 被命名为 'USERNAME_FIELD',但它不是唯一的。提示:确保您的身份验证后端可以处理非唯一用户名。

有没有办法防止显示此警告?我只找到了禁用所有警告的方法,但我只想禁用那个特定的警告。

python django

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

使用 Django REST Framework 进行 BitField 序列化

我有一个包含BitField. 尝试使用 Django Rest Framework 序列化对象时,返回以下错误:

{"flags": ["Enter a whole number."]}
Run Code Online (Sandbox Code Playgroud)

(flagsBitField)

如何BitField使用 Django Rest Framework序列化一个?

python django django-rest-framework django-bitfield

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

如何将机密作为环境变量传递到 Docker Github Action 中?

在我的工作流程中,我使用以下步骤运行自定义操作:

- name: Run action
  uses: ./backend
  env:
    MY_SECRET: ${{ secrets.MY_SECRET }}
Run Code Online (Sandbox Code Playgroud)

这是action.yml

name: "Backend"
on: [pull_request]
runs:
  using: 'docker'
  image: "Dockerfile"
Run Code Online (Sandbox Code Playgroud)

由于某种原因,MY_SECRET我的Dockerfile. 我尝试在 shell 脚本文件和命令中访问它RUN

RUN echo "MY_SECRET: $MY_SECRET"
Run Code Online (Sandbox Code Playgroud)

但它总是空的。

我尝试了存储库级别和组织级别的机密,但环境变量始终为空。

知道为什么吗?

github docker dockerfile github-actions

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