首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-piston的错误重定向

django-piston的错误重定向
EN

Stack Overflow用户
提问于 2011-09-10 17:34:05
回答 1查看 362关注 0票数 1

我的django api有问题。我有一个很好的网站,现在我想用django-piston做一个api来做一个android应用程序。当我尝试获取一些数据时,我在url中发送了一些键,我的api项目的处理程序是空的,它们是我的urls.py和handlers.py inside api应用程序。

urls.py

代码语言:javascript
复制
from django.conf.urls.defaults import *
from piston.resource import Resource
from myproject.api.handlers import ProgramadorHandler
from myproject.api.handlers import UserHandler
from myproject.api.handlers import GetProgHandler
from myproject.api.handlers import GetUserHandler

prog_handler = Resource(ProgramadorHandler)
user_handler = Resource(UserHandler)
get_prog_handler = Resource(GetProgHandler)
get_user_handler = Resource(GetUserHandler)

urlpatterns = patterns('',
url(r'^1.0/(?P<username>)\w+/(?P<password>)\w+/(?P<api_key>)\d+/programadores.(?P<emitter_format>.+)$', prog_handler),
url(r'^1.0/(?P<username>)\w+/(?P<password>)\w+/(?P<api_key>)\d+/programadores/(?P<prog_id>\d+)/prog.(?P<emitter_format>.+)$', get_prog_handler),
url(r'^1.0/(?P<username>)\w+/(?P<password>)\w+/(?P<api_key>)\d+/usuarios.(? P<emitter_format>.+)$', user_handler),
url(r'^1.0/(?P<username>)\w+/(?P<password>)\w+/(?P<api_key>)\d+/user.(? P<emitter_format>.+)$', get_user_handler),
)

这是我的handlers.py

代码语言:javascript
复制
from piston.handler import BaseHandler
from piston.utils import rc, HttpStatusCode
from myproject.web.models import *
from django.contrib.auth import authenticate

class ProgramadorHandler(BaseHandler):
allowed_methods = ('GET',)
model = Programador

def read(self, request, username, password, api_key):
    user = authenticate(username=username, password=password)
#       if (api_key != 29010):
#           return rc.FORBIDDEN

    if user is not None:
        return Programador.objects.filter(nombre="Programador completo 2")

    return Programador.objects.all()


class GetProgHandler(BaseHandler):
allowed_methods = ('GET',)
model = Programador

def read(self, request, username, password, api_key, prog_id):
    user = authenticate(username=username, password=password)
    if user is None or (api_key != 29010):
        return rc.FORBIDDEN

    return Programador.objects.all()


class UserHandler(BaseHandler):
allowed_methods = ('GET',)
model = Usuario

def read(self, request, username, password, api_key):
    user = authenticate(username=username, password=password)
    if(api_key != 29010):
        return rc.FORBIDDEN

    return Usuario.objects.all()


class GetUserHandler(BaseHandler):
allowed_methods = ('GET',)
model = Usuario

def read(self, request, username, password, api_key):
    #user = authenticate(username=username, password=password)
#       if (api_key != 29010):
#           user = "hola"
        #return rc.FORBIDDEN

    return Usuario.objects.get(username="ersame")

我该怎么解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-10 18:07:12

我认为您的正则表达式在urls.py中可能是错误的。组的模式说明符需要在括号内,例如,

而不是:

代码语言:javascript
复制
url(r'^1.0/(?P<username>)\w+/(?P<password>)\w+/(?P<api_key>)\d+/programadores.(?P<emitter_format>.+)$', prog_handler), ...

尝试:

代码语言:javascript
复制
url(r'^1.0/(?P<username>\w+)/(?P<password>\w+)/(?P<api_key>\d+)/programadores.(?    P<emitter_format>.+)$', prog_handler), ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7370860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档