python - 如何从 models.py django 调用自定义函数

标签 python django

我正在构建一个自定义函数来从 mongodb 中提取数据,并希望查看数据在操作之前的样子。

假设我有一个函数可以从mongodb请求数据

这是我的 models.py 的样子

from bson import json_util
from django.db import models
from django.http import JsonResponse
from pymongo import MongoClient
from bson.json_util import dumps
from bson.json_util import loads
import json
import pymongo

def data_pull(request):
     request_data = request.POST.get('Hello', None) 

if __name__ == "__main__":
    data_pull(request)

要运行 models.py,我从命令行执行 python models.py 但收到此错误

NameError: name 'request' is not defined

所以基本上我想从 models.py 测试这个 data_pull 函数,看看数据是什么样的。如何将此 request 调用提供给函数并查看命令行的输出?

最佳答案

这部分代码看起来很奇怪:

if __name__ == "__main__":
    data_pull(request)

通常,如果您传递请求作为参数,则可以从 View 调用函数data_pull(),并在函数调用中将请求作为参数传递。

你不能只使用 if __name__ == "__main__": 并期望出现一个请求对象,你需要自己创建一个或使用由 View 创建的请求对象(django引擎在很大程度上负责处理 if )。

文档中的更多信息:https://docs.djangoproject.com/en/3.2/ref/request-response/#quick-overview


编辑:如果您想要一个 HttpRequest 对象,这通常意味着您需要从网络浏览器发送的数据(django 引擎放置在 request.GETrequest.POST 等)。这意味着您应该从 View 中调用函数data_pull()

例如,“views”文件中的代码(来自 https://docs.djangoproject.com/en/3.2/topics/class-based-views/intro/#using-class-based-views 的代码):

from django.http import HttpResponse
from django.views import View

# since you function is declared in 'models', we import it here
from .models import data_pull

class MyView(View):
    def get(self, request):
        # call the function passing request as argument
        data_pull(request)

        return HttpResponse('result')

关于python - 如何从 models.py django 调用自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69903757/

相关文章:

python - 以 ASCII 显示树

python - pandas concat/merge and sum 一列

python - 检查对象是否存在,如果不存在则手动引发错误

python - 在 Python 中创建 LazilyEvaluatedConstantProperty 类

python Cachetools 项目可以有不同的 ttl 吗?

python - 有没有办法在 pocketsphinx python 中返回整个字典条目(单词+音素)?

javascript - 使用 bootstrap 和 django 的异步表单

html - 选项卡的 li 检查问题

database - 关于在 Django 数据库中存储一些微不足道的值的体系结构的建议?

django - 当用户在从 UserCreation 表单继承的 UserRegister 表单上注册时,如何自动将用户添加到组