django templates 中form调用post方法
在 Django 模板中,你不能直接调用 POST 方法,因为模板是用于呈现数据的,而不是处理逻辑。处理 POST 请求应该在 Django 的视图函数中进行。
然而,你可以在模板中显示一个表单,并在用户提交表单时触发 POST 请求。以下是一个简单的示例:
1. 首先,在 Django 视图函数中定义一个表单:
```python
from django import forms
class MyForm():
    field1 = (max_length=100)
    field2 = (max_length=100)
```
2. 在 Django 模板中显示这个表单:
```html
{% load static %}
<!DOCTYPE html>
<html>
<head>
    <title>My Form</title>
</head>
<body>
    <form method="post" action="{% url 'my_view' %}">
        {% csrf_token %}
        {{ _p }}
        <input type="submit" value="Submit">
    </form>
</body>
</html>django项目实例
```
在这个模板中,`method="post"` 指定了表单提交的方式为 POST,`action="{% url 'my_view' %}"` 指定了提交请求的 URL,这个 URL 应该映射到你的视图函数。`{% csrf_token %}` 是为了添加 CSRF 令牌,确保安全。`{{ _p }}` 将表单字段显示为一系列的段落。
3. 在你的 Django 视图函数中处理 POST 请求:
```python
from  import render, redirect, get_object_or_404
from .forms import MyForm
from .models import MyModel  假设你的模型是 MyModel
def my_view(request):
    if  == 'POST':  检查是否是 POST 请求
        form = MyForm()  初始化表单并传入 POST 数据
        if _valid():  检查表单是否有效
            在这里处理表单数据,例如保存到数据库:
            instance = MyModel()  创建或获取一个 MyModel 实例
            = _data['field1']  设置字段值
            = _data['field2']  设置字段值
            ()  保存实例到数据库
            return redirect('success')  重定向到成功页面,例如 "/success/"
    else:  如果不是 POST 请求,显示一个空的表单
        form = MyForm()  初始化一个空的表单实例
    return render(request, 'my_', {'form': form})  渲染模板并传入表单实例
```
在这个视图函数中,我们首先检查请求的方法是否为 POST。如果是,我们初始化一个表单并传入 POST 数据,然后检查表单是否有效。如果表单有效,我们处理数据(例如保存到数据库),然后重定向到成功页面。如果请求方法不是 POST(即首次加载页面或刷新页面),我们显示一个空的表单。最后,我们渲染模板并传入表单实例。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。