0
我是Django1.10 Python的新手。在Django python中提供web服務時遇到麻煩android
我必須爲應用程序提供Web服務。所以我在python的Django框架中創建了一個web服務。網絡服務適用於iOS
,但在使用android
時遇到問題。用於處理android中的Web服務,使用Volley
庫。
以下錯誤發生: - Error Code 500 Internal Server Error
因此無法發佈爲Android端數據...
對於Web服務我使用下面的代碼: -
views.py
from django.http import HttpResponseRedirect, HttpResponse
from django.views.decorators import csrf
from django.views.decorators.csrf import csrf_protect, csrf_exempt
from django.db import IntegrityError, connection
from django.views.decorators.cache import cache_control
from django.core.files.images import get_image_dimensions
import json
from json import loads, dump
from models import Gym
@csrf_exempt
def gym_register_web(request):
data = json.loads(request.body)
gN = str(data['gym_name'])
gPh = str(data['gym_phone'])
gE = str(data['gym_email'])
gL = str(data['gym_landmark'])
gAdd = str(data['gym_address'])
exE = Gym.objects.filter(gym_email = gE)
if exE:
status = 'failed'
msg = 'EmailId already exist'
responseMsg = '{\n "status" : "'+status+'",\n "msg" : "'+msg+'"\n}'
return HttpResponse(responseMsg)
else:
gymI = Gym(gym_name = gN, gym_phone = gPh, gym_email = gE, gym_area = gL, gym_address = gAdd)
gymI.save()
data = Gym.objects.get(gym_email = gE)
status = 'success'
dataType = 'gym_id'
val = str(data.gym_id)
responseMsg = '{\n "status" : "'+status+'",\n "'+dataType+'" : "'+val+'"\n}'
return HttpResponse(responseMsg)
urls.py
from django.conf.urls import url, include
from . import views
from django.views.decorators.csrf import csrf_protect, csrf_exempt
admin.autodiscover()
urlpatterns=[
url(r'^gymRegister/$', views.gym_register_web),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
編輯: models.py
from django.db import models
from django.contrib import admin
class Gym(models.Model):
gym_id = models.AutoField(primary_key = True)
gym_name = models.CharField(max_length = 100, null=True,default = None)
gym_email = models.CharField(max_length = 100, null=True,default = None)
gym_phone = models.BigIntegerField(null=True,default = None)
gym_area = models.TextField(max_length = 255, null=True,default = None)
gym_address = models.TextField(max_length = 255, null=True,default = None)
gym_latitude = models.CharField(max_length = 100, null=True,default = None)
gym_longitude = models.CharField(max_length = 100, null=True,default = None)
gym_status = models.IntegerField(null=True,default = None)
gym_website = models.CharField(max_length = 255,null=True,default = None)
gym_ladies_special = models.IntegerField(null=True,default = None)
我對Advance REST Client
測試的網絡服務提供所需的輸出, ,我想提醒再次web服務工作正常進行iOS
所以,我應該在哪裏改進我的代碼...?
感謝提前:)
編輯:
我的Android開發者試圖
{ "key1"="val1", "key2"="val2"}
而不是JSON數組發送它以JSON對象的方式發送數據(鍵:值)的方式
{
"key1" : "val1",
"key2" : "val2"
}
我該如何取數據發送object
表格在...
三江源
我接着說:models.py'文件...謝謝...我已經提到了相同的代碼工作'iOS' ,並且還給出了適用於Android的'ARC'唯一問題的適當迴應... @ Akas –
模型似乎沒問題。 iOS,ARC和Android客戶端是三種不同的東西。所有客戶都通過'request.body'向您發送數據。所以,我說如果你可以在你的本地服務器上打印你的'request.body',那麼你將會知道request.body中的數據是否正確地得到了正確的安裝, –
好吧,沒有從android端獲取數據...當我的 –