Python 在Django中,当文件准备就绪时在UI上显示字符串

Python 在Django中,当文件准备就绪时在UI上显示字符串,python,html,django,Python,Html,Django,我想做下一步 当按下提交按钮时,Django生成一些文件(需要一些时间,大约一分钟) 我想,旁边的提交按钮将出现另一个按钮下载(本地)这个文件时,生成完成 屏幕截图: HTML: {% load bootstrap %} <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-wi

我想做下一步

当按下提交按钮时,Django生成一些文件(需要一些时间,大约一分钟) 我想,旁边的提交按钮将出现另一个按钮下载(本地)这个文件时,生成完成

屏幕截图:

HTML:

{% load bootstrap %}

<!DOCTYPE html>
<html> 
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
      <title>Create SWM Client Environment</title>  
  </head>

  <body>
    <nav class="navbar navbar-dark bg-dark">
        <h4 style="color: aliceblue;">Create SWM client environment</h4>
    </nav>
    <div style="padding: 20px;">
        <form method="post">
            {% csrf_token %}
            <div class="form-group container w-25">
                {{ form|bootstrap }}
            </div>

            <div class="container w-25">
                <button type="reset" class="btn btn-primary">Reset</button>
                <button type="submit" class="btn btn-primary">Submit</button>
            </div>
        </form>
    </div>
  </body>
</html>
class ContactForm(forms.Form):
    swm_server = forms.CharField(
        label='server',
        widget=forms.TextInput(attrs={'placeholder': 'Server IP or Server DNS'}))

    def clean(self):
        cleaned_data = super(ContactForm, self).clean()
        swm_server = cleaned_data.get('swm_server')
def home(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            pass  # does nothing, just trigger the validation

    else:
        form = ContactForm()

    return render(request, 'home.html', {'form': form})
视图:

{% load bootstrap %}

<!DOCTYPE html>
<html> 
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
      <title>Create SWM Client Environment</title>  
  </head>

  <body>
    <nav class="navbar navbar-dark bg-dark">
        <h4 style="color: aliceblue;">Create SWM client environment</h4>
    </nav>
    <div style="padding: 20px;">
        <form method="post">
            {% csrf_token %}
            <div class="form-group container w-25">
                {{ form|bootstrap }}
            </div>

            <div class="container w-25">
                <button type="reset" class="btn btn-primary">Reset</button>
                <button type="submit" class="btn btn-primary">Submit</button>
            </div>
        </form>
    </div>
  </body>
</html>
class ContactForm(forms.Form):
    swm_server = forms.CharField(
        label='server',
        widget=forms.TextInput(attrs={'placeholder': 'Server IP or Server DNS'}))

    def clean(self):
        cleaned_data = super(ContactForm, self).clean()
        swm_server = cleaned_data.get('swm_server')
def home(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid():
            pass  # does nothing, just trigger the validation

    else:
        form = ContactForm()

    return render(request, 'home.html', {'form': form})

你已经试过什么了?你的代码在哪里?生成文件的代码在哪里?如何异步运行它,使其不会阻塞请求?通常,您想要的不是我们可以简单回答并提供代码的东西:您需要启动一个异步任务,并且希望能够检查任务的完成情况。在django芹菜中搜索允许您分派任务的包。并搜索“ajax调用django”,使用javascript对django进行API调用,以检查文件的状态。