我正在構建一個自定義函式來從中提取資料,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:未定義名稱“請求”
所以基本上我想data_pull從models.py測驗這個函式,看看資料是什么樣的。如何將此request呼叫提供給函式并查看命令列的輸出?
uj5u.com熱心網友回復:
這部分代碼看起來很奇怪:
if __name__ == "__main__":
data_pull(request)
通常,如果您傳遞一個requestas 引數,您將從data_pull()視圖中呼叫該函式并將請求作為函式呼叫中的引數傳遞。
您不能只是使用if __name__ == "__main__":并期望出現一個請求物件,您需要自己創建一個或使用由視圖創建的請求物件(django 引擎在大多數情況下會負責)。
檔案中的更多資訊:https : //docs.djangoproject.com/en/3.2/ref/request-response/#quick-overview
編輯:如果你想有一個HttpRequest目標,那通常意味著您希望從web瀏覽器發送的資料(該資料是Django的引擎場所內request.GET以及request.POST和其他人)。這意味著您可能應該data_pull()從視圖中呼叫您的函式。
例如,您的“視圖”檔案中的此代碼(來自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')
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/355220.html
