如何让Django为每个输入的URLField创建唯一的URL视图和页面

0 投票
1 回答
662 浏览
提问于 2025-04-18 18:30

我正在尝试在一个Django项目中创建一个小应用。当用户在URL字段的表单中输入一个网址时,系统会为每个网址创建一个单独的页面,形成一个目录页面,方便大家查看提交的链接。例如,如果我输入网址 http://www.facebook.com/username1http://www.facebook.com/username2,我希望Django能分别在 www.mysite.com/username1 和 www.mysite.com/username2 创建新页面。请问我该怎么做比较好呢?非常感谢!这是我为表单字段写的基本代码:

class newlinkform(forms.ModelForm):
    link_comment = forms.CharField(max_length=256) #comment to go along with URL entered
    url = forms.URLField(max_length = 512) #actual submitted link I'd like to get a view mapped to


    class Meta:
        model = newlink

1 个回答

0

如果你的 urls.py 文件里有这样的内容:

...
url(r'URL/^(?P<url_param>[a-zA-Z0-9_]*)/$', 'views.view_for_all_pages', name='view_for_all_pages')
...

那么你的 views.py 文件可能看起来像这样:

from django.shortcuts import render as render_original
def view_for_all_pages ( request, url_param ):
    render (request, "template.html", { "url_param" : url_param })

还有你的模板文件:

<h1>URL entered: {{url_param}}</h1>

这样的话,你可以通过请求这个地址: http://yourserver.com:8000/URL/foo 来看到 <h1>你输入的URL是: foo</h1>

撰写回答