0

我是 Django 的新手。请帮我解决以下问题。

我有一个提供 URL1 和 URL2 的用户表单。这些 URL 需要传递给另一个 Python 脚本[ redirects.py],该脚本将执行验证以检查它们是否采用有效的 URL 格式并将消息返回给用户。

现在我的问题是如何编写我views.py的以便完成这项工作。我知道我们可以redirects.py在 my中导入views.py并调用它。但我不知道如何在浏览器中打印消息。请帮忙。让我知道是否需要更多信息。

def shortcuts_process(request):
    print request.POST
    return HttpResponse("Source is %s\nDestination is %s" % (request.POST['source'],request.POST['destination']))

更新: 这是我的脚本概述。我的系统中有一个接受源 URL 和目标 URL 的 python 脚本[ redirects.py]。一旦被接受,它会验证它们是否为 URL 格式,然后进行备份,然后将它们.htaccess添加到文件中并显示添加到文件中的行。在执行所有这些操作的同时,它会不断向用户提示脚本中发生的事情的信息。

现在我已经制作了 django 来创建一个门户网站,该门户网站为用户提供输入源和目标。现在我想调用脚本并在用户的网络浏览器中views.py打印所有这些脚本输出。redirects.py

请帮我解决这个问题,我花了一整天的时间寻找这个答案。谢谢。

Update 2: 请让我知道为什么以下内容没有显示在我的浏览器中

views.py

def shortcuts_process(request):
 if 'source' in request.POST and 'destination' in request.POST and request.POST['source'] and request.POST['destination']:
            src=request.POST['source']
            desti= request.POST['destination']
            my_result=process_input(src,desti)
            return render_to_response('results.html',{'result': my_result}

来自results.html

<html>    
<head>
This is the result page to User
</head>
<body>
<ul>
{% for each_line in result %}
<p>{{ each_line }}</p>
{% endfor %}
</ul>
<p>
I'm supposed to be printed</p>
</body>
</html>

从浏览器输出:

这是用户的结果页面

我应该被打印

从 Linux 提示符:

[10/Jun/2013 04:41:11]“GET /redirects HTTP/1.1”200 727 [10/Jun/2013 04:41:14]“GET /choice?selection=shortcuts HTTP/1.1”200817 URL格式不正确 URL 格式不正确 [10/Jun/2013 04:41:18] "POST /shortcuts.conf HTTP/1.1" 200 125

所以现在我的问题是,为什么消息The URL is not in the right format没有显示在浏览器上,而是显示在 Linux 提示符中。请帮忙。谢谢

4

2 回答 2

0

谢谢大家..我设法得到了答案。而是将我的功能validate_url改为print值,将其更改为return给了我想要的结果。

我太笨了才发现这个。失败是成功的垫脚石!!:O)

于 2013-06-10T13:04:41.490 回答
0

无论您想在浏览器中显示什么字符串,都可以在 HttpResponse 中返回它。

您可以尝试以下方法:

#validation.py
def validate(url1, url2):
    # perform validation here
    if valid:
        return "urls are valid"
    else:
        return "urls are invalid"


#views.py
def shortcuts_process(request):
    print request.POST
    url1 = request.POST.get('url1', '')
    url2 = request.POST.get('url2'. '')
    return HttpResponse(validate(url1, url2))

希望有帮助。
表单验证请参考django书的第7章(http://www.djangobook.com/en/2.0/chapter07.html

于 2013-06-10T03:06:55.090 回答