我是Django的新手。请帮我解决以下问题。
我有一个提供URL1和URL2的用户表单。这些URL需要传递给另一个Python脚本[redirects.py
],它将进行验证以检查它们是否采用有效的URL格式并返回给用户的消息。
现在我的问题是如何编写我的views.py
以便完成这项工作。我知道我们可以导入redirects.py
中的views.py
并进行调用。但我不知道如何在浏览器中打印消息。请帮忙。如果需要更多信息,请告诉我。
def shortcuts_process(request):
print request.POST
return HttpResponse("Source is %s\nDestination is %s" % (request.POST['source'],request.POST['destination']))
更新
这是我的脚本概述。我的系统中有一个python脚本[redirects.py
],它接受源和目标URL。一旦被接受,它将验证它们是否为URL格式,然后进行备份,然后将它们添加到.htaccess
并显示添加到文件中的行。在完成所有这些工作的同时,它会通过脚本中发生的信息向用户暗示。
现在我已经让django创建了一个Web门户,它为用户提供输入源和目标。现在我想从views.py
调用脚本并在用户的Web浏览器中打印所有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 /重定向HTTP / 1.1”200 727 [10 / Jun / 2013 04:41:14]“GET / choice?selection = shortcuts HTTP / 1.1”200 817 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提示符中。请帮忙。感谢
答案 0 :(得分: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书(http://www.djangobook.com/en/2.0/chapter07.html)
答案 1 :(得分:0)
谢谢大家......我设法得到答案。
而是将我的函数validate_url
改为print
,将其更改为return
,这给了我想要的结果。
我是如此愚蠢地发现这一点。失败是成功的踏脚石!! :O)