我正在使用Python和Flask来构建项目。
如何导入子目录中的模块?
这是目录结构。
/application
/apis
settings.py
index.py
这是index.py文件。
from flask import Flask
import os
import sys
import random
from flask import render_template, request, jsonify, redirect, url_for, send_file, Response, make_response
from werkzeug import secure_filename
app = Flask(__name__)
app.debug = True
sys.path.append("apis")
import settings
这是apis文件夹中的settings.py文件。
from flask import Flask
import pymongo
import datetime
import os
import sys
import random
from flask import render_template, request, jsonify, redirect, url_for, send_file, Response, make_response
from werkzeug import secure_filename
app = Flask(__name__)
app.debug = True
## About Us
@app.route('/apis/settings/aboutus')
def aboutus():
return render_template('aboutus.html')
因此,我尝试使用sys.path.append导入设置模块。
当所有代码都在index.py中时,它运行正常。
如果我点击此地址http://domain.com:5000/apis/settings/aboutus,它应该显示AboutUS页面。
然而,在我拆分模块之后,它说“404 Not Found”。
你能看到问题吗?
答案 0 :(得分:5)
您需要创建一个“包”。基本上是包含__init__.py
。
通常你可以(天真地)做这样的事情:
$ mkdir foo
$ touch foo/__init__.py
“foo”必须在sys.path
中。
有关详细信息,请参阅:http://docs.python.org/2/tutorial/modules.html。
答案 1 :(得分:0)