【发布时间】:2022-01-23 10:57:28
【问题描述】:
我正在通过 DRF,我想在另一个也有 get 和 post 方法的 API 函数中调用一个具有 GET 和 POST 方法的 API 函数。是否会同时调用 get 和 post 方法,或者我能以任何方式实现它。我在谷歌上搜索我没有得到任何合适的方法
如果有人可以证明它会有所帮助。如果我想在另一个函数中调用 POST 方法怎么办?
views.py
startshift
@api_view(['GET'])
def UserStartShift(request):
if request.method == 'POST':
UserId = request.data.get('UserId')
Ip = request.data.get('Ip')
PortNumber = request.data.get('PortNumber')
print("UserId-->", UserId)
print("Ip-->", Ip)
print('Portnumber-->', PortNumber)
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[Usp_StartShift] @UserId=%s, @IP=%s, @Port=%s', (UserId, Ip, PortNumber,))
return Response(True, status=status.HTTP_200_OK)
endshift
@api_view(['GET'])
def UserStopShift(request, UserId):
try:
users = tblUserShiftDetails.objects.filter(UserId=UserId)
except tblUserShiftDetails.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
if request.method == 'GET':
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[USP_StopShift] @UserId=%s',(UserId,))
return Response(True)
#UserShiftDetailsView
@api_view(['GET'])
def UserShiftDetailsView(request, userid):
try:
users = tblUserShiftDetails.objects.filter(UserId=userid)
except tblUserShiftDetails.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
if request.method == 'GET':
if UserStartShift == True:
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[USP_GetCurrentShiftDetails] @UserId=%s',(userid,))
result_set = cursor.fetchall()
for row in result_set:
row = row[0]
return Response({"IsStarted":True,"EstimatedShifEnd":(row + datetime.timedelta(hours=9)).strftime('%d-%m-%Y %H:%M %p'),"ReasonforAccess": "null"})
elif UserStopShift == True :
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[USP_GetCurrentShiftDetails] @UserId=%s',(userid,))
result_set = cursor.fetchall()
for row in result_set:
row = row[0]
return Response({"IsStarted":False,"EstimatedShifEnd":"null","ReasonforAccess": "null"})
【问题讨论】:
-
您想发布到第三方 API 还是您的 API?
-
到我创建的API函数
-
然后你可以像在 Python 中那样调用它。您可能会发现从视图本身中提取功能很有帮助,因此共享代码会更容易。
-
我在这里添加了代码,其中 UserStartShift 和 UserStopShift 这些是我创建的 API 函数,每当用户开始换班时,它将返回特定的响应,同样适用于停止换档。在这里,我有条件方法,但没有成功。有什么方法可以尝试
标签: django django-rest-framework