我有一个名为“ 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位于同一文件夹中。
答案 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>