python - 如何使用 django-cors-headers 从数据库中动态填充 CORS_ORIGIN_WHITELIST?
问题描述
我正在编写一个 django 应用程序,其中我有一个名为的模型Website
,其中包含人们的网站。我只允许在我的数据库中有网站的人使用我的 Django REST API。我正在使用该django-cors-headers
软件包将人员域列入白名单:https ://github.com/adamchainz/django-cors-headers 。
CORS_ORIGIN_WHITELIST
settings.py 中的变量允许我将域列入白名单,如https://github.com/adamchainz/django-cors-headers#cors_origin_whitelist所示
问题是我必须查询我的模型以获取网站域,将它们附加到列表中,然后将该列表放入CORS_ORIGIN_WHITELIST
. 但是我不能在 settings.py 中这样做,因为模型是在应用程序启动后加载的,而 settings.py 是启动应用程序的那个。
有谁知道解决这个问题的方法?任何建议将不胜感激。提前致谢。
解决方案
django-cors-headers
有一个信号可以让你决定是否允许request
通过。文档准确地显示了您的用例。
请注意,CORS_ORIGIN_WHITELIST
cors 中间件也会检查这一点(信号响应不会取代白名单),因此您可以同时拥有:静态白名单 + 依赖于request
. 您无需检查信号处理程序中的静态白名单。
推荐阅读
- python - 如何从 PDF 中提取文本,包括图像和文本
- html - 如何删除缩小内容
- angular - 调用 Azure Functions 的静态 Angular 应用程序。是安全问题吗?
- java - 空值在 jtable 中没有改变
- javascript - React-渲染表的问题
- java - 假设openGl的单词空间在-1.0到1.0的区间,但在我的情况下似乎不是
- javascript - js中for循环中的addEventListener
- ms-word - 图书馆里的三色子弹(人物)
- postgresql - 如何通过终端进入psql?
- jquery - How do I display my json result in html using jquery?