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?
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 your name doesn't exist, 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)