当前位置: 首页 > 面试题库 >

我应该将密钥放在Flask中的什么位置?

翁和颂
2023-03-14
问题内容

在阅读exploringflask.com时,我了解到最佳实践是使用两个不同的配置文件,一个用于开发,一个用于生产。我不知道是否将密钥放置在开发或生产配置中。

实例文件夹的私有性质使其非常适合用于定义不想在版本控制中公开的键。这些可能包括您应用的秘密密钥或第三方API密钥。

我认为不应共享密钥。我应该将密钥放入开发配置或生产配置中,还是应该为每个配置使用不同的密钥?


问题答案:

将密钥放置在开发配置中,该配置将提交给存储库。这对于开发人员很方便,因为他们不必生成一个就可以开始运行该应用程序。在生产环境中,请使用具有唯一密钥的生产环境配置(永远不会提交给存储库)。生产配置应覆盖开发配置。

app = Flask(__name__, instance_relative_config=True)
# default value during development
app.secret_key = 'dev'
# overridden if this file exists in the instance folder
app.config.from_pyfile('config.py', silent=True)

如果您无法在生产中(例如在Heroku上)添加私有文件,则另一种选择是使用环境变量。如果设置了变量,它将覆盖默认值。

app.secret_key = os.environ.get('SECRET_KEY', 'dev')


 类似资料:
  • 问题内容: 我已经在Eclipse中创建了一个新项目,并且想要包含ANTLR jar文件。 在项目中引用jar文件之前,通常将它们放置在哪里?您是在eclipse中创建“源目录”还是常规的“目录”?然后您从那里引用它们吗? 我希望能够轻松地传输该项目,而不必在我的项目文件夹外声明对jar文件的引用,但是我不确定Java世界中的常规约定是什么。 任何指导将不胜感激。 问题答案: 我通常创建一个/ l

  • 最近,我开始使用spring boot,我正在尝试将我的旧spring项目转换为使用它,所有这些项目都是web应用程序。我设法编译、打包和运行应用程序,但当我尝试在浏览器中访问它们时,我无法访问我的视图。 首先,我尝试将jsp页面放在通常的文件夹src/main/webapp/WEB-INF/jsp中,但在从官方留档中阅读本文后: http://docs.spring.io/spring-boot

  • 问题内容: 我应该把shebang放在我的Python脚本中吗?以什么形式? 要么 这些同样便携吗?最常使用哪种形式? 问题答案: 任何脚本中的shebang行都决定了脚本的执行能力,就像独立的可执行文件一样,无需python事先在终端中键入或在文件管理器中双击(正确配置时)。不必要,但通常放在那里,因此当有人看到在编辑器中打开文件时,他们会立即知道他们在看什么。但是,您使用的家当线IS重要。 P

  • 问题内容: 许多使用Shell脚本配置其环境的Java应用程序都使用环境变量来启动Java的正确版本,找到JRE JAR,等等。 在OSX 10.6上,以下路径似乎对此变量有效 其中一些是到实际当前VM的符号链接(在Java Preference窗格中定义)。 但是应该使用哪一个?或者可以使用其中任何一个? 问题答案: 我只是设置JAVA_HOME为该命令的输出,该命令应该为你提供Java首选项中

  • 问题内容: 如果我多次将相同的键传递给的方法,那么原始值会怎样?如果值重复出现该怎么办?我没有找到任何文档。 情况1:密钥的覆盖值 我们得到surely not one。 情况2:重复值 我们得到。 但是其他值怎么办?我在向学生教授基础知识,有人问我。是等,其中最后一个值引用(但在内存中)水桶? 问题答案: 根据定义,该命令将替换与映射中给定键相关联的先前值(概念上类似于对原始类型的数组索引操作)