我正在将一个小的PHP应用程序转换为Django.
一个部分具有长查询字符串,指示窗口小部件的显示方式.有一些必需的参数和几个可选的参数.
目前的网址如下:
app.php?id=102030&size=large&auto=0&bw=1&extra=1
Run Code Online (Sandbox Code Playgroud)
id和size是必需的,但auto,bw和extra是可选的.如果没有指定,我会使用默认值.
我的第一个想法是使用所需的信息,ID和大小制作一个django URL模式:
url(r'^/app/(P?<id>)\d+/(P?<size>)\w+$',app.project.views.widget,name='swidget')
Run Code Online (Sandbox Code Playgroud)
可选参数将是一个查询字符串,如
/app/102030/large?auto=0&bw=1&extra=0
Run Code Online (Sandbox Code Playgroud)
将GET参数与Django中的URL conf中定义的参数混合是一种常见做法吗?或者我应该这样做
url(r'^/app/(P?<id>)\d+/(P?<size>)\w+/(P?<auto>)\d/(P?<bw>)\d/(P?<extra>)\d[/]?,'app.project.views.widget,name='swidget')
#so it would look like:
/app/102030/large/0/1/0/
Run Code Online (Sandbox Code Playgroud)
任何关于最佳实践或问题的建议都要记住这两种风格,我们对此表示赞赏!
如何在 Django 中获取所有这些 url 参数(1、12-18、5、生日快乐)?
https://domain/method/?1='12-18'&5='Happy birthday'
Run Code Online (Sandbox Code Playgroud)
我努力了:
https://domain/method/?1='12-18'&5='Happy birthday'
Run Code Online (Sandbox Code Playgroud)
但我只得到12-18。
我是Django的新手.我要写一个moke.我的服务器将查看特定地址.像这样:
portal/client_api.ashx?client=SAPRA&key=1234234&func=status&code=99999
我写:
from django.conf.urls import patterns, url
from rt_moke import views
urlpatterns = patterns('',
url(r'code=(?P<code_id>\w+)/', views.Sapata, name='sapata'),
)
Run Code Online (Sandbox Code Playgroud)
from django.http import HttpResponse
status = {u"99999": u'{"code": "99999","status": "undelivered"}',\
u"88888": u'{"code": "88888","status": "delivered"}',\
}
def Sapata(request, code_id):
return HttpResponse(status[code_id])
Run Code Online (Sandbox Code Playgroud)
当我请求ortal/client_api.ashx?client=SAPRA&key=1234234&func=status&code=99999没有?标记的p时- 它可以工作,而且?- 不是.我明白,它是查询字符串,Django在regexp中跳过它.那我该怎么办?
我有以下格式的网址。
http://127.0.0.1:8000/accounts/login/?next=/event/contract-risk-management/review/
我需要从模板中“解析”“ / event / contract-risk-management / review /”部分。问题是我不知道如何在问号后得到零件。
我尝试了request.path,但它只返回了网址的第一部分。(无域)。
有谁知道我该怎么用?谢谢。
django ×4
python ×3
django-urls ×2
get ×1
httprequest ×1
python-3.x ×1
regex ×1
url ×1
url-routing ×1