[英]Connect to Couchdb using Django rest framework 3.6.2 and python 3
我正在研究Django Rest框架。 我創建了一些API,並將數據存儲在sql lite中。 現在,我想將其余API調用(基本上是原始應用程序)的數據保存到CouchDB中。
我沒有得到如何通過Django rest框架連接到沙發數據庫。 我被困在這里,沒有得到如何使用Django rest api在沙發上做雜物。
以下是用django編寫的用於添加accconts的api之一。 我想將此數據保存在CouchDB中。
models.py
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,並且其中的python-cloudant維護良好,可以幫助您將CouchDB與Python結合使用。
Joe Lennon(出版於2009年)的Apress書“ Beginning CouchDB ”中有一個示例應用程序,該應用程序通過CouchDBKit將CouchDB用作Django應用程序的后端。 遺憾的是,它是處於“管理方”模式下的本地數據庫,因此我尚未弄清楚如何添加所需的參數以將其連接到Cloudant。 使用Cloudant進行命令行python示例對我來說效果很好-有一些教程對此進行了解釋,並且可以與couchdbkit一起使用。
在Joe的示例中,他將最小的默認SQLite條目留在settings.py中作為“虛擬”占位符。
benchdbkit庫中有一些線索,使我認為我需要構造並傳遞一個URI字符串(可能是settings.py中COUCHDB_DATABASES參數中的一個值),其內容類似於IBM的VCAP_SERVICES環境變量,其憑證為鍵值對。 我還沒有找到任何用法示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.