django html网页内有 % csrf_token % uf.as_p这样模板,怎么替换

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django html网页内有 % csrf_token % uf.as_p这样模板,怎么替换相关的知识,希望对你有一定的参考价值。

<form method = 'post' enctype="multipart/form-data">
% csrf_token %
uf.as_p
<input type="submit" value = "ok" />
<a href="http://127.0.0.1:8000/online/login/">登陆</a>
</form>
这个怎么替换

参考技术A <!DOCTYPE html>
<html>
<body>
<input type="text" id="a" value="0"> + <input type="text" id="b" value="0"> <input type="button" onclick=result() value=" = "> <input type="text" id="c" value="0">

<script type="text/javascript">

function result()

a=document.getElementById('a').value;
a=parseFloat(a);
b=document.getElementById('b').value;
b=parseFloat(b);
c=document.getElementById('c');
c.value=(a+b)+"";

</script>
</body>

</html>本回答被提问者和网友采纳
参考技术B 这个是将你表单的数据传递到网页上,如果你需要替换,可以根据代码里面的表单内容在网页上进行填写

Django如何通过单击带有变量的提交按钮从ajax调用views.py中的函数

【中文标题】Django如何通过单击带有变量的提交按钮从ajax调用views.py中的函数【英文标题】:Django How to call a function in views.py from ajax by clicking submit button with variable 【发布时间】:2021-06-23 00:50:38 【问题描述】:

我在从脚本 html 调用 views.py 中的函数时遇到问题 HTML:

<form method="POST" class="msger-inputarea">
    % csrf_token %
    <input type="text" name="msg" class="msger-input" placeholder="Enter your message...">
    <button type="submit" name="answer" class="msger-send-btn">Send</button>
  </form>

<script type="text/javascript">
 msgerForm.addEventListener("submit", event => 
      event.preventDefault();

      const msgText = msgerInput.value;

      if (!msgText) return;

      appendMessage(PERSON_NAME, PERSON_IMG, "right", msgText);
      msgerInput.value = "";
      botResponse(msgText);
    );

    function botResponse(rawText) 
        alert(rawText)
        alert('inside ajax')
        $.ajax(
        url: "% url 'ajaxview' %",
        method: 'POST',
        data: 'rawText': rawText , csrfmiddlewaretoken: ' csrf_token ',
        success: function (response) 
            appendMessage(PERSON_NAME, PERSON_IMG, "left", response);
        ,
      );
   

URL.py:

 path('/ajax-test-view', views.myajaxtestview, name='ajaxview')

VIEWS.py:

def myajaxtestview(request):
    input = request.POST.get('rawText')
    return HttpResponse(input)

【问题讨论】:

【参考方案1】:

你必须在你的视图中使用JsonResponse(Django Docs) myajaxtestview

from django.http import JsonResponse

def myajaxtestview(request):
    input = request.POST.get('msg')
    return JsonResponse("message": "My Ajax Test", input: input)

AJAX:

msgerForm.addEventListener("submit", event => 
    ...
    botResponse($(this).serialize());
);

function botResponse(data) 
    $.ajax(
        url: "% url 'ajaxview' %",
        method: 'POST',
        data: data,
        success: function (response) 
            appendMessage(PERSON_NAME, PERSON_IMG, "left", response.message);
        ,
    );

网址.py:

path('ajax-test-view/', views.myajaxtestview, name='ajaxview')

添加 jQuery:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

【讨论】:

我试图打印(输入)但它没有打印。脚本和网址是否正确? @NKSM @Mohanbaabu,我编辑了我的答案 > botResponse($(this).serialize()); input = request.POST.get('rawText') ,这里我需要将 'rawText' 更改为 'data' @NKSM const msgText = msgerInput.value;机器人响应(msgText);我需要将参数传递给下一个函数@NKSM 感谢提前 @Mohanbaabu,在你看来input = request.POST.get('msg')

以上是关于django html网页内有 % csrf_token % uf.as_p这样模板,怎么替换的主要内容,如果未能解决你的问题,请参考以下文章

Django项目实战之用户头像上传与访问

html怎么在一张网页上出现一个列表,列表内有几项,单机切换内容,并不跳转到另一个网页。

Django如何通过单击带有变量的提交按钮从ajax调用views.py中的函数

django学习之- CSRF及中间件

如何在 Django 的 ajax POST 中返回新的 csrf 令牌?

表单提交发送 POST 请求而不是 GET