简体   繁体   English

在django中长时间处理期间显示加载gif?

[英]show loading gif during long processing in django?

I do my project using Django 1.8 . 我使用Django 1.8进行项目。 I want put a GIF to during call key_generate function. 我想在调用key_generate函数时放一个GIF。 How can I do this using Django. 如何使用Django执行此操作。 I refer this question to reference Link but I couldn't understand how apply it my code. 我将这个问题引用给Link,但是我不明白如何在我的代码中应用它。 This is my view function. 这是我的视图功能。

from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.shortcuts import get_object_or_404, redirect, render
from django.core.exceptions import PermissionDenied
from django.http import HttpResponse
from django.utils.timezone import now

from django.shortcuts import render_to_response

from .forms import BookmarkForm
from .models import Bookmark

from .forms import KeyGenarateForm
from .models import Key_Gen
from .algo import  algo

from pymongo import MongoClient
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger


@login_required
def key_create(request):
    #print(request.POST)

    if request.method == 'POST':
        form = KeyGenarateForm(data=request.POST)


        expier_date = request.POST['expier_date']

        if form.is_valid():
             #request.POST._mutable = True
             Key_Gen = form.save(commit=False)
             Key_Gen.save(expier_date)
             return redirect('marcador_bookmark_user',username=request.user.username)
        else:
            print('form not valied')
    else:
        form = KeyGenarateForm()


    context = {'form': form, 'create_key': True}
    return render(request, 'marcador/key_genarate_form.html', context)

This is my form class. 这是我的形式课。

{% extends "base.html" %}
{% load crispy_forms_tags %}

{% block title %}
  {% if create %}Create{% else %}New Key{% endif %}Serious
{% endblock %}

{% block heading %}
  <h2>
      Create New Serial Keys
  </h2>
{% endblock %}

{% block content %}
  {% if create %}
    {% url "marcador_key_create" as action_url %}
  {% else %}
    {% url "marcador_bookmark_search" pk=form.instance.pk as action_url %}
  {% endif %}
  <form action="{{ action_url }}" method="post" accept-charset="utf-8" >
    {{ form|crispy }}
    {% csrf_token %}
    <p> <b>Expiry Date*:</b>  <input type="date" id="datepicker" name="expier_date"></p>
    <p><input type="submit" class="btn btn-default" value="Save" ></p>
  </form>
{% endblock %}

Further explanation: 进一步说明:

I generate 10000 serial keys using this forum. 我使用此论坛生成10000个串行密钥。 在此处输入图片说明

This keys store in mongoDB database. 此密钥存储在mongoDB数据库中。 System spend 3 -4 minutes to this task.I want show some thing [ Example : loading image or wait message ] during this time period. 系统花费3 -4分钟完成此任务。我想在此时间段内显示一些内容[例如:加载图像或等待消息]。

You can use Block UI for this purpose, it's a JavaScript library. 您可以为此使用Block UI ,它是一个JavaScript库。

Replace <input type="submit" class="btn btn-default" value="Save" > with <input type="submit" class="btn btn-default" value="Save" >替换为

<button type="button" class="btn btn-default" onclick="submit_form()">Save</button>

Submit your form with JavaScript and upon submitting form, show image you want to show. 使用JavaScript提交表单,并在提交表单后显示要显示的图像。 You can watch demos here . 您可以在此处观看演示。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM