使用Django rest framework 3.6.2和python 3连接到Couchdb
我正在研究Django Rest框架。我已经创建了一些API,并将数据存储在SQLLite中。 现在,我想将RESTAPI调用(基本上是crud应用程序)中的数据保存到CouchDB 我不知道如何通过Django rest框架连接到Coach db。我被困在这里,不知道如何使用Django rest api在Coach db中执行crud 下面是用django编写的用于添加ACCCONT的api之一。我想把这些数据保存在CouchDB中 models.py使用Django rest framework 3.6.2和python 3连接到Couchdb,python,django,django-rest-framework,couchdb,Python,Django,Django Rest Framework,Couchdb,我正在研究Django Rest框架。我已经创建了一些API,并将数据存储在SQLLite中。 现在,我想将RESTAPI调用(基本上是crud应用程序)中的数据保存到CouchDB 我不知道如何通过Django rest框架连接到Coach db。我被困在这里,不知道如何使用Django rest api在Coach db中执行crud 下面是用django编写的用于添加ACCCONT的api之一。我想把这些数据保存在CouchDB中 models.py class BankAccount(m
class BankAccount(models.Model):
SAVINGS = 'saving'
CURRENT = 'current'
TYPE = (
(SAVINGS,'Saving'),
(CURRENT,'Current')
)
type = models.CharField(max_length=20, choices=TYPE, default=SAVINGS)
bank_name = models.CharField(max_length=200)
account_number = models.IntegerField()
balance = models.DecimalField(max_digits=10, decimal_places=2)
def __str__(self):
"""returns the model as string."""
return self.bank_name
def __str__(self):
"""returns the model as string."""
return self.type
serializers.py
class BankAccountSerializer(serializers.ModelSerializer):
class Meta:
model = BankAccount
fields = '__all__'
views.py
class BankAccountView(APIView):
def get_object(self, pk):
try:
return BankAccount.objects.get(pk=pk)
except BankAccount.DoesNotExist:
raise Http404
def get(self, request, format=None):
accounts = BankAccount.objects.all()
serializer = BankAccountSerializer(accounts, many=True)
return Response(serializer.data)
def post(self, request, format=None):
serializer = BankAccountSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def put(self, request, format=None):
data = json.loads(request.body)
pk = data['id']
action = data['action']
if action == 'delete':
return self.deleteItem(pk)
account = self.get_object(pk)
serializer = BankAccountSerializer(account, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def deleteItem(self, pk):
account = self.get_object(pk)
account.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
请帮助我,我被卡住了。Django使用Python,并且有一个很好的维护,可能会帮助您将CouchDB与Python一起使用。Joe Lennon的《Apress book》(pub 2009)中有一个示例应用程序,通过couchdbkit使用CouchDB作为Django应用程序的后端。遗憾的是,它是一个处于“管理方”模式的本地数据库,所以我还没有研究如何添加必要的参数来将其连接到Cloudant。使用Cloudant执行命令行python示例对我来说很好——有教程解释了这一点,并且它可以使用couchdbkit 在Joe的示例中,他在settings.py中留下一个最小的默认SQLite条目作为“虚拟”占位符
库中有一些线索,这让我认为我需要构造并传递一个URI字符串(可能作为settings.py中COUCHDB_DATABASES参数中的一个值),其内容类似于IBM的VCAP_服务环境变量,并将凭据作为键值对。我没有找到任何用法示例 除了SQLite之外,您还使用couchdb吗?或者您想用couchdb替换SQLite吗?我想用coach dbHi替换SQlLite。有人能帮我吗out@WillKeeling你知道吗?用CouchDB交换SQLite可能不是件小事,因为CouchDB不像SQLite那样是关系数据库,所以您可能会遇到概念上的不兼容。我没有将Django与CouchDB一起使用的任何直接经验,但它似乎有可用的,也有一些可用的。对不起,我帮不上什么忙了。