对全局变量没有影响

时间:2019-05-06 07:44:34

标签: python django django-views

我的代码有问题。我正在创建一个小型Web应用程序,并且想要检索在html页面上输入的值。因此,我使用表格。我正在恢复消息中的价值。我导入了另一个python文件“ thread.py”,其中包含一个receive()函数,将其分配给全局变量“ var_maman”,该变量在开始时已初始化为0。连续显示全局变量),然后在我的网站上输入一个值,全局变量没有任何变化,我不知道该怎么办。 谢谢您的帮助!

view.py

from __future__ import unicode_literals
from django.shortcuts import render,redirect
from django.http import HttpResponse, Http404
import sql
import thread
from .forms import ContactForm
# Create your views here.


def RPI(request,rpi_id):
    if int(rpi_id) > 10:
        return redirect("/page/accueil/")
    Pactive = sql.run("Pactive")
    Preactive = sql.run("Qreactive")
    Courant = sql.run("I")
    form = ContactForm(request.POST or None)
    if form.is_valid(): 
        message = form.cleaned_data['message']
        thread.reception(message)
        print("Le message est : RPI"+rpi_id+","+message)
        envoi = True

    return render(request, 'page/RPI.html',locals())

thread.py


import sys
import time
global var_maman

def reception(message):
    global var_maman
    print("entre dans reception")
    var_maman = message

if __name__ == '__main__':
    global var_maman
    var_maman=0

    while True :
        print var_maman
        time.sleep(1)

1 个答案:

答案 0 :(得分:1)

您可以将实际的线程用于打印功能,从view.py调用它。

import threading
import time

def reception(message):
    while True :
        print message
        time.sleep(1)

然后您可以从RPI视图启动线程:

reception_thread = threading.Thread(target=reception, args=(message,))
reception_thread.start()