python - 如何在服务器上自动加载视图集类中的数据?
问题描述
我在 EC2、Ubuntu18.04、nginx 上运行了后端 Django 项目。基本上,当我通过运行“python manage.py runserver”在本地测试项目时,我可以看到我想要生成的矩阵在服务器准备好之前加载。但是,在我将它部署到服务器上之后,它返回了视图没有名为“矩阵”的属性的错误。
我在本地尝试过,我可以看到我的打印,以便它真正生成矩阵。但是,我无法像在本地那样调试项目,因为我通过设置 .conf 文件自动运行项目。
module 'test.views' has no attribute 'matrix'
class CreateMatrixViewSet(viewsets.ModelViewSet):
serializer_class = MatrixSerializer
queryset = Matrix.objects.all()
print("start creating ls_frame")
global ls_frame
ls_frame = read_frame(queryset)
print("end creating ls_frame")
print("start creating matrix")
global matrix
matrix = generateMatrix(ls_frame)
print("end creating matrix")
http_method_names = ['post']
def create(self, request):
...
我假设在服务器上运行时,它不会进行初始加载。所以如果我想在服务器准备好之前生成一些东西,我应该怎么做?
解决方案
这段代码有很多问题,我看不出它在本地是如何工作的。要将变量标记为全局变量,您需要首先在模块级别实际定义它。但是你永远不应该在像 Django 这样的多用户环境中使用全局变量;当然不是作为类属性,这根本没有意义。
问题的根源是无论如何都试图在类级别运行代码。再一次,这没有任何意义。我不明白你为什么要跑在read_frame
那里generateMatrix
;你应该在一个方法中运行它们(我不能告诉你什么方法,因为我不知道你想对结果做什么。)
推荐阅读
- postgresql - 向 Prisma 3 添加许多关系字段
- oracle - 无法读取 run_service.sh / run_service.bat
- laravel - Laravel Eloquent:如何形成“2 Select database”来执行计数?
- python - 将所有链接的 Xpath 转换为泛型
- mysql - 连接两个表并获取重复行
- python - 替换数组中的整个元素
- oracle - Oracle DB:如何检查已用完存储的用户
- android - 错误 无法构建 iOS 项目。我们运行了“xcodebuild”命令,但它以错误代码 65 退出。在 ios 文件夹中没有构建
- javascript - 使用 sequelize 时打字稿比 javascript 慢?
- c++ - 如何更喜欢调用 const 成员函数并回退到非 const 版本?