擅长:python、mysql、java
<p>除了公认的答案外,还有一个简单但非常重要的额外步骤,我发现在django 2.0中使用django权证是必要的:</p>
<p>根包中backend.py中的条件需要从以下位置更改:</p>
<pre><code> if DJANGO_VERSION[1] > 10
</code></pre>
<p>致:</p>
<pre><code> if DJANGO_VERSION[1] > 10 or DJANGO_VERSION[0] > 1:
</code></pre>
<p>对Zappa和AWS Lambda使用django搜查令:</p>
<p>我正在处理的项目还使用Zappa来实现我的Django应用程序到AWS Lambda的无服务器部署。尽管上面的代码在本地测试时为我修复了django许可证,但在将应用程序部署到Lambda环境之后,我遇到了另一个重大问题,这是由于django许可证的一些支持包造成的,主要与python jose pycryptodome有关,django许可证在身份验证过程中使用了python jose pycryptodome。该问题以与加密相关的FileNotFound错误的形式出现。这个错误似乎是由于pycryptodome希望在Windows(我正在开发的)和Linux(Lambda环境)上的Crypto包中分别有不同的文件可用而导致的。我最终通过下载Linux版本的pycryptodome并将它的Crypto包与Windows版本的Crypto包合并来解决这个问题。</p>
<p>TLDR:如果你想将django授权与AWS Lambda一起使用,并且你是在Windows机器上开发的,那么一定要下载Linux版本的pycryptodome,并将其密码包与Windows版本的密码包合并。</p>
<p>注意:pycryptodome和python jose(不是python jose cryptodome)的版本分别是3.7.2和3.0.1。</p>