我可以使用一些帮助来编写正则表达式.在我的Django应用程序中,用户可以点击以下URL:
http://www.example.com/A1/B2/C3
Run Code Online (Sandbox Code Playgroud)
我想创建一个允许接受以下任何一个有效URL的正则表达式:
http://www.example.com/A1
http://www.example.com/A1/B2
http://www.example.com/A1/B2/C3
Run Code Online (Sandbox Code Playgroud)
我猜我需要使用"OR"条件,但是我无法让我的正则表达式进行验证.有什么想法吗?
更新:到目前为止这是正则表达式.请注意,我没有包含" http://www.example.com "部分 - Django为我处理.我只关心验证1,2或3个子目录.
^(\w{1,20})|((\w{1,20})/(\w{1,20}))|((\w{1,20})/(\w{1,20})/(\w{1,20}))$
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,允许您通过3个字段过滤数据.我正在尝试在我的urls.py中编写一个RegEx,它可以捕获多个组合,而不必将每个可能的组合写出它自己的URL.
这是我的urls.py:
#urls.py
urlpatterns = patterns('',
# Uncomment the next line to enable the admin:
(r'^admin/', include(admin.site.urls)),
(r'(?P<key>\w*?)=(?P<value>\w*?)&|$', views.scriptFilter),
Run Code Online (Sandbox Code Playgroud)
我在pythonregex.com上测试了上面的RegEx,它似乎捕获了尽可能多的键/值对.但是,当我在我的应用程序中测试它时,Django只返回基于第一对的查询集,并忽略其他对.
例如,如果我输入: http:// MYSITE/feature = 1&session = 1&
Django仅返回基于feature = 1的数据,并忽略session = 1.
这是我的views.py:
#views.py
def scriptFilter(request, key, value):
if key == 'session':
sessionID = value
qs = models.Script.objects.filter(session=sessionID)
elif key == 'product':
productID = value
qs = models.Script.objects.filter(product=productID)
elif key == 'feature':
featureID = value
scriptFeature = models.Feature.objects.get(pk=featureID)
qs = models.Script.objects.filter(feature=scriptFeature)
else:
qs = models.Script.objects.all()
caseTotal = qs.aggregate(Sum('caseCount'))
scriptTotal = …Run Code Online (Sandbox Code Playgroud) 我可以从request.path以下位置获取视图功能:
from django.core.urlresolvers import resolve
view_func, _args, _kwargs = resolve(request.path)
Run Code Online (Sandbox Code Playgroud)
但是,我需要更多的东西.我需要获取一个视图名称列表,并查看['edit_foo', 'delete_foo']当前URL是否适用于其中一个.
我提出了一些使用一些内部构件的想法django.core.urlresolvers,但我想要一些有效且有些正确的东西(即,不是hacky,理想的文档记录).
我经常发现自己陷入了这样一个世界,在这个世界中,我不太确定我想出的网址.我认为这主要是因为我对django中的URL设计有一些问题仍然没有答案.
说,我为我的网站用户建立了一个公开的个人资料页面.可以通过提供用户ID来访问它.用户id应该是URL的一部分(即./profile/<userid>/)还是应该在querystring(/profile?userid=<userid>)中提供?为什么?
我在我的项目中广泛使用AJAX.AJAX URL的设计是否应与其对应的URL不同?是否有用于此目的的设计模式?
您好,并提前感谢您,
我非常喜欢Django/Python noobie.我只需要指导,不一定是答案.我已经阅读了所有相关文档,但我似乎无法找到我想要做的简明例子.
我有两个视图,一个是表单,另一个是列出数据库表中包含的数据的视图.我试图在用户调用URLS页面中列出的一个URL的同一网页上显示这两个视图.我确信这是可能的,我同样确信我遗漏了一些基本的东西.
谢谢您的帮助.
DP
我来自PHP背景,我知道常量可以在框架中的大多数地方访问,我认为它在django中也是一样的.我试图在django中拥有该URL,但我试图从django.contrib获取它.我试图利用django的Site类并导入它.但问题是在加载settings.py时我无法导入任何django contrib.文件.
那么,如何让网站URL自动,我可以在任何地方使用,模板以及其他places.What是这样做的最佳方法是什么?任何python实用程序都可以这样做吗?
假设我想在url中传递用户名:
username = 'kakar@gmail.com'
Run Code Online (Sandbox Code Playgroud)
所以在网址中,它是这样的:
url(r'(?P<user_name>\w+)/$', 'user_related.views.profile', name='profile'),
Run Code Online (Sandbox Code Playgroud)
并在views.py中获取该用户:
def profile(request, user_name):
user = User.objects.get(username=user_name)
return render(request, 'user_profile.html', {'user':user})
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:
User matching query does not exist.
Run Code Online (Sandbox Code Playgroud)
因为django会自动转换@成%40.如何将实际传递username给视图?请帮我解决这个问题.谢谢!
我是初学者,我正在使用Django 1.8.3和Python 2.7.3.我正在尝试运行服务器并收到以下错误:
Traceback:
File "/home/mercurial/internet.django/djangoenv/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
108. response = middleware_method(request)
File "/home/mercurial/internet.django/djangoenv/local/lib/python2.7/site-packages/django/middleware/common.py" in process_request
74. if (not urlresolvers.is_valid_path(request.path_info, urlconf) and
File "/home/mercurial/internet.django/djangoenv/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in is_valid_path
647. resolve(path, urlconf)
File "/home/mercurial/internet.django/djangoenv/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
522. return get_resolver(urlconf).resolve(path)
File "/home/mercurial/internet.django/djangoenv/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in resolve
366. for pattern in self.url_patterns:
File "/home/mercurial/internet.django/djangoenv/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in url_patterns
402. patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/home/mercurial/internet.django/djangoenv/local/lib/python2.7/site-packages/django/core/urlresolvers.py" in urlconf_module
396. self._urlconf_module = import_module(self.urlconf_name)
File "/usr/lib/python2.7/importlib/__init__.py" in import_module
37. __import__(name)
File "/home/mercurial/internet.django/bzi/bzi/urls.py" in <module>
24. url(r'^domains/', include('mailserver.urls')),
File "/home/stas/mercurial/internet.django/djangoenv/local/lib/python2.7/site-packages/django/conf/urls/__init__.py" in include …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下方法创建一个重定向到简单静态.html文件的网址:
url(r'^impressum/', TemplateView.as_view(template_name='impressum.html'), name='impressum'),
Run Code Online (Sandbox Code Playgroud)
据我了解,template_name参数采用.html文件的位置。我尝试了上述代码的几种变体,尝试重定向到文件,但在加载localhost:8000 / impressum /时始终出现404错误
这是我的文件夹目录的外观。我尝试了“ lwc / templates / impressum.html”和“ templates / impressum.html”。我在做什么错/该路径方向如何正常工作
编辑:在我的TEMPLATE_DIRS设置下面:
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
Run Code Online (Sandbox Code Playgroud) 我指的是https://www.webforefront.com/django/namedjangourls.html以了解Django urlconfs。我遇到过术语实例名称空间和应用程序名称空间。我知道urlsconfs中的名称空间。但是我不知道它们之间的区别。
我为此推荐了django文档。它提到当在django项目中使用同一应用程序的多个实例时,实例和应用程序名称空间就变得生动起来。
但是,我仍然无法理解。我已经用谷歌搜索了,但是找不到任何帮助。
提前致谢。