python - Django url正则表达式的问题

标签 python regex django

我正在尝试使用具有以下结构的 Django 定义搜索 url

www.example.com/afdata/search?device=television&category=news&query=channel&limit=30/

我的目标是从上面的 url 和将其传递给定义如下的 View

def search(request, device='all', category='single', query='', limit=30):
    return HttpResponse("device=%s, category=%s, query=%s, limit=%d", device, category, query, limit)

afdata 是应用程序,在 url 配置文件中我定义了 url 如下:

from django.conf.urls.defaults import *

urlpatterns = patterns('afdata.views',
    (r'^$', 'index'),
    (r'^search?device=(?P<device>.*)&category=(?P<category>.*)&query=(?P<query>.*)&limit=(?P<limit>d+)/$', 'search')
)

当我在浏览器中使用上述搜索查询运行时,出现 500 Internal Server Errorindex 响应良好。对我可能做错了什么有什么建议吗?

最佳答案

我建议您将搜索网址更改为:

(r'^search', 'search')

然后在你看来做

def search(request):
    device = request.GET.get('device', 'all')
    category = request.GET.get('category', 'single')
    query = request.GET.get('query', '')
    limit = request.GET.get('limit', 30)

   return HttpResponse("device=%s, category=%s, query=%s, limit=%d", device, category, query, limit)

这更加健壮、多变和灵活。

关于python - Django url正则表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6339476/

相关文章:

python - 理解tensorflow中的 `tf.nn.nce_loss()`

python - tf.lookup.StaticHashTable 以列表(任意大小)作为值

Django 缓存外键

python - C/Python 中的 asn.1 解析器

python - 使用 tsfresh 中的 extract_(relevant_)features 时出现(类型转换)错误

regex - .htaccess - 定位除索引之外的所有内容(使用干净的 URL)

regex - 如何为两个正则表达式的 "intersection"编写正则表达式,可用于匹配字符串中的任何位置

.net - 使用正则表达式获取给定字符串中 = 后面的值

Django 在登录待定组后重定向用户

Django:如何锁定行以供阅读?