从另一个视图发布到Django视图

时间:2018-08-20 18:55:30

标签: python django post django-views

面对网站中的一些限制,我不得不尝试将数据从另一个视图发布到某个视图(我认为这确实是有道理的),例如:

def view1(request):
     if request.method == 'POST':
          value = request.POST.get('h1')
     ''' '''

在我看来,我会做类似的事情:

def view2(request):

    if constraint:
          python.post(/url/view1/,data={'h1':1}) # Doesn't exist
          # Just a demonstration

有没有办法做我想做的事?

3 个答案:

答案 0 :(得分:1)

您可以使用requests包将请求发送到其他URL,问题是“ 为什么” ??。

为什么不从实用程序函数中提取view1的代码并从view2调用int?

如果您需要使用新的HTTP请求,建议您将Django mono scriptcs.exe -script /path/to/foo.csx 函数用于reverse()配置中的URL(请参阅official documentation

答案 1 :(得分:1)

使用requests库执行此操作。

答案 2 :(得分:-3)

看一下Python Requests:我在Python论坛中找到它进行打印,可以对其进行修改以进行发布。 导入请求

req = requests.Request('POST','http://stackoverflow.com',headers = {'X-Custom':'Test'},data ='a = 1&b = 2') 准备= req.prepare()

def pretty_print_POST(req):     “”     至此,它已完全构建并准备就绪     被开除;它是“准备好的”。

However pay attention at the formatting used in 
this function because it is programmed to be pretty 
printed and may differ from the actual request.
"""
print('{}\n{}\n{}\n\n{}'.format(
    '-----------START-----------',
    req.method + ' ' + req.url,
    '\n'.join('{}: {}'.format(k, v) for k, v in req.headers.items()),
    req.body,
))

pretty_print_POST(已准备)