Django模板中的按钮不会将数据放入数据库

时间:2019-11-05 06:15:10

标签: django django-models django-templates

我有一个名为“ mysite”的应用。我希望它执行一个python脚本,当单击按钮时,暂时将虚拟数据放入数据库(添加行)中(本来我将从API中提取数据),但是单击按钮时什么也没发生。

urls.py

path('', views.index),

views.py

from .fetch_data import get_data

def index(request):
    if (request.method == 'POST' and 'script' in request.POST):
        get_data()

    return render(request, 'mysite/index.html')

“ mysite / templates / mysite”文件夹中的index.html

<form method="POST" name='script'>
{% csrf_token %}    
<button type="submit" >Fetch data from source</button>
</form>

fetch_data.py

    from .models import Hosts
    import time, sys

    def get_data():
        print('here in function')
        p = Hosts(hostname="first data")
        p.save()

但是当我单击按钮时,什么也没发生。即使成功单击按钮,视图也应保持不变。

注意:fetch_data.py与views.py和urls.py位于同一文件夹中。

2 个答案:

答案 0 :(得分:0)

尝试这可能会对您有所帮助

from .fetch_data import get_data

def index(request):
    if (request.method == 'POST'):
        script = get_data.objects.all()
        script.save()

    return render(request, 'mysite/index.html')

答案 1 :(得分:0)

表单中的name属性不会将任何内容作为发布数据发送到服务器。 您应该这样更改按钮:

<button type="submit" name="script">Fetch data from source</button>