如何解决无法获取HTML表单以与Django DRF APIView中的post方法进行通信
我可以在集成django rest API方面使用一些帮助。我一直在试图获取原始HTML表单以与Django中的APIView进行通信,并且还需要帮助弄清楚如何将加密API集成到字段中以保护信用卡号,有效日期和Cvv。
我无法获取HTML页面来调用views.py中的post方法。
views.py
'''
from django.shortcuts import render
from django.http import HttpResponse
from django.shortcuts import get_object_or_404,render,redirect
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.renderers import TemplateHTMLRenderer,JSONRenderer
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.decorators import APIView
from . models import creditCardInfo
from . serializers import creditCardInfoSerializer
import requests
from django.views.decorators.csrf import csrf_exempt
from django.template import loader
def post(self,request):
if request.method == "POST":
a = request.POST.get('tag','default')
print("printing",a)
print(request.POST)
return HttpResponse("Hello")
class index(APIView):
def get(self,request):
return render(request,'index.html')
class creditCardList(APIView):
def get(self,request):
creditCard1 = creditCardInfo.objects.all()
serializer = creditCardInfoSerializer(creditCard1,many=True)
return Response(serializer.data)
def post(self,request):
creditCard1 = creditCardInfo.objects.all()
serializer = creditCardInfoSerializer(data=creditCard1)
if serializer.is_valid(raise_exception=True):
serializer.save(response)
return Response(serializer.data,status=status.HTTP_201_CREATED)
return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
''''''
Outbound connection
''' os.environ['HTTPS_PROXY'] = 'https://USi6vXVNrcsBYnpCMB7GciTg:2da52565-6e72-4a46-b419-245764f128ae@tntzrhiqrtg.SANDBOX.verygoodproxy.com:8080'
res = requests.post('https://echo.apps.verygood.systems/post',json={'add_message': message},verify='/full/path/to/cert.pem')'''
index.html '''
{% extends "base.html" %}
{% block content %}
<!-- <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>VGS</title>
</head>
<body> -->
<form class="form-horizontal2 boxed" method="POST" action="/post">
<!--CREDIT CARD PAYMENT-->
<div class="panel panel-info">
<div class="form-group">
<div class="col-md-12">
<label for="pan_number" id="pan_number_label">Credit Card Number</label>
<input class="form-control" placeholder="Card Number" type="text" name="cc_number" maxlength="16" id="pan_number" value="">
</div>
</div>
<div class="form-group">
<label for="pan_exp" id="pan_exp_label">CC Expiration</label>
<input class="form-control" placeholder="Card Expiration" type="text" name="cc_exp" maxlength="5" id="pan_exp">
</div>
</div>
<div class="form-group">
<label for="pan_cvv" id="pan_cvv_label">CC CVV</label>
<input class="form-control" placeholder="CVV" type="text" name="cc_cvv" maxlength="3" id="pan_cvv" value="">
</div>
<button type="submit">Redact data</button>
</form>
<h1>Redacted data: {{ message }}</h1>
<form method="GET" action="/get">
<input placeholder="alias here" type="text" name="message">
<button type="submit">Reveal data</button>
</form>
<h1>Revealed data:</h1>
<div>{{ response.data }}</div>
<script>
// js
</script>
{% endblock %}'''
models.py
'''from django.db import models
# Create your models here.
class creditCardInfo(models.Model):
card_number=models.CharField(max_length=16)
exp_date=models.CharField(max_length=5)
cvv=models.CharField(max_length=3)
def __str__(self):
return self.card_number + ' ' + self.exp_date + ' ' + self.cvv
'''
urls.py
'''from django.contrib import admin
from django.conf.urls import include,url
from django.urls import path
from rest_framework.urlpatterns import format_suffix_patterns
from vgsRestApp import views
from django.views.generic.base import TemplateView
urlpatterns = [
path('admin/',admin.site.urls),url(r'^cc_info/',views.creditCardList.as_view(),name='index'),url(r'^index/',views.index.as_view(),path('index/',views.post,]
urlpatterns = format_suffix_patterns(urlpatterns)'''
serializers.py
from rest_framework import serializers
from vgsRestApp.models import creditCardInfo
class creditCardInfoSerializer(serializers.ModelSerializer):
class Meta:
model=creditCardInfo
# fields=('card_number','exp_date','cvv')
fields='__all__'
需要获取帖子和获取使用index.html表单的方法,并加密信用卡号,到期日和cvv,然后发布到服务器。那么我需要能够显示/解密所述加密的字段日期
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。