My Flask application structure looks like
application_top/ application/ static/ english_words.txt templates/ main.html urls.py views.py runserver.py
When I run the
runserver.py, it starts the server at
views.py, I try to open the file
f = open('/static/english.txt')
It gives error
IOError: No such file or directory
How can I access this file?
I think the issue is you put
/ in the path. Remove
static is at the same level as
I suggest making a
settings.py the same level as
views.py Or many Flask users prefer to use
__init__.py but I don't.
application_top/ application/ static/ english_words.txt templates/ main.html urls.py views.py settings.py runserver.py
If this is how you would set up, try this:
#settings.py import os # __file__ refers to the file settings.py APP_ROOT = os.path.dirname(os.path.abspath(__file__)) # refers to application_top APP_STATIC = os.path.join(APP_ROOT, 'static')
Now in your views, you can simply do:
import os from settings import APP_STATIC with open(os.path.join(APP_STATIC, 'english_words.txt')) as f: f.read()
Adjust the path and level based on your requirement.