[Solved] python-How to set global variables in Flask? [duplicate]

I’m working on a Flask project and I want to have my index load more contents when scroll.
I want to set a global variable to save how many times have the page loaded.
My project is structured as :

???run.py
???app
   ???templates
   ???_init_.py
   ???views.py
   ???models.py

At first, I declare the global variable in _init_.py:

global index_add_counter

and Pycharm warned Global variable 'index_add_counter' is undefined at the module level

In views.py:

from app import app,db,index_add_counter

and there’s ImportError: cannot import name index_add_counter

I’ve also referenced global-variable-and-python-flask
But I don’t have a main() function.
What is the right way to set global variable in Flask?

Solution #1:

With:

global index_add_counter

You are not defining, just declaring so it’s like saying there is a global index_add_counter variable elsewhere, and not create a global called index_add_counter. As you name don’t exists, Python is telling you it can not import that name. So you need to simply remove the global keyword and initialize your variable:

index_add_counter = 0

Now you can import it with:

from app import index_add_counter

The construction:

global index_add_counter

is used inside modules’ definitions to force the interpreter to look for that name in the modules’ scope, not in the definition one:

index_add_counter = 0
def test():
  global index_add_counter # means: in this scope, use the global name
  print(index_add_counter)
Respondent: Salva
The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Leave a Reply

Your email address will not be published.