Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django-在同一视图上呈现两个页面_Django - Fatal编程技术网

Django-在同一视图上呈现两个页面

Django-在同一视图上呈现两个页面,django,Django,我是一个网络开发新手,我正在开发一个Django应用程序。现在我有一个主页和一个按钮,可以重定向到另一个触发视图的页面。此视图包含更新数据库的代码,这需要相当长的时间才能完成。因此,我将主运行分为两个步骤 我的目标是当用户单击主页上的重定向按钮时,将他带到显示数据库中过时数据的页面,在这个新页面中自动更新数据库(持久代码执行),然后用新值刷新页面。 简而言之:主页->过时数据页->更新数据库->使用新值刷新页面 视图.py # initialRun() just gathers initial

我是一个网络开发新手,我正在开发一个Django应用程序。现在我有一个主页和一个按钮,可以重定向到另一个触发视图的页面。此视图包含更新数据库的代码,这需要相当长的时间才能完成。因此,我将主运行分为两个步骤

我的目标是当用户单击主页上的重定向按钮时,将他带到显示数据库中过时数据的页面,在这个新页面中自动更新数据库(持久代码执行),然后用新值刷新页面。 简而言之:主页->过时数据页->更新数据库->使用新值刷新页面

视图.py

# initialRun() just gathers initial info before major run
def allgames_view(request, *args, **kwargs):
    listUrl, data = betchamp.initialRun(0, False)
    return render(request, "games/allgames.html",{}) #page with outdated data from database (in progess)
不知道该放在哪里:

# major run (main) and then check if the object is to be updated or created
data = betchamp.main()
for match in data['Games']:
    try:
        obj = Game.objects.get(game=match['game'], date=match['date'])
        print(obj.game)
        print(obj.numberTips)
        print(match['numberTips'])
        if match['numberTips'] > obj.numberTips:
            obj.numberTips = match['numberTips']
            obj.ProbAway = match['ProbAway']
            obj.ProbHome = match['ProbHome']
            obj.ProbDraw = match['ProbDraw']
            obj.ToWin = match['ToWin']
            obj.save()
    except ObjectDoesNotExist:
        Game.objects.create(**match)

同样,我对web开发还是新手,不知道有哪些API或框架可以帮助实现这一点。如果您能透露一些信息,我们将不胜感激。

您需要使用消息队列(如django mq或芹菜)在后台运行长期任务