Python 2.7 使用带有蓝图的Python mod_wsgi应用程序
我正在尝试创建具有以下结构的简单mod_wsgi应用程序 档案:Python 2.7 使用带有蓝图的Python mod_wsgi应用程序,python-2.7,flask,mod-wsgi,Python 2.7,Flask,Mod Wsgi,我正在尝试创建具有以下结构的简单mod_wsgi应用程序 档案: /var/www/test/application.wsgi-mod_wsgi过程 /var/www/test/hello.py-python应用程序 /var/www/test/static/index.html-静态内容 /etc/apache2/sites available/test.conf-应用程序配置 application.wsgi import sys activate_this = '/home/u
import sys
activate_this = '/home/ubuntu/environments/test/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
sys.path.insert(0, '/var/www/test')
from hello import app as application
你好,派伊
from flask import Flask
app = Flask(__name__, static_url_path='')
@app.route("/")
def root():
return app.send_static_file('index.html')
from flask import Flask
app = Flask(__name__, static_url_path='')
@app.route("/")
def root():
return app.send_static_file('index.html')
from views.authentication import authentication
app.register_blueprint(authentication, url_prefix='/test/auth')
index.html
<html><h1>testing</h1></html>
/var/www/test/views/authentication.py-facebook身份验证
from flask import Blueprint
authentication = Blueprint('authentication', __name__)
@authentication.route('/facebook/', method=['POST'])
def facebook():
''' facebook login '''
access_token_url = app.config.get('FACEBOOK_ACCESS_TOKEN_URL')
graph_api_url = app.config.get('FACEBOOK_GRAPH_API_URL')
pass
一旦我引入上述蓝图代码,我就开始接收404错误(即使方法体为空)。知道吗,原因是什么?如果有任何帮助或建议,我将不胜感激。您应该检查您的
错误。日志
,它总是开始调试的好地方。我假设会有这样一行:ImportError:No module named views
。这是因为您必须将名为\uuu init\uuu.py
的文件(至少是一个空文件)放在模块目录中(在您的情况下是视图
)。以下是来自以下方面的解释:
要使Python处理
包含包的目录;这样做是为了防止
无意中使用公用名称(如字符串)的目录
隐藏稍后在模块搜索路径上出现的有效模块。在里面
最简单的情况是,\uuuuu init\uuuuu.py
可以只是一个空文件,但它可以是一个空文件
同时执行包的初始化代码或设置\uuuu all\uuu
变量,稍后描述
第二个问题是方法=['POST']
。应该是方法
和'GET'
方法才能“正常”到达此页面:
你应该检查你的
错误日志,它总是开始调试的好地方。我假设会有这样一行:ImportError:No module named views
。这是因为您必须将名为\uuu init\uuu.py
的文件(至少是一个空文件)放在模块目录中(在您的情况下是视图
)。以下是来自以下方面的解释:
要使Python处理
包含包的目录;这样做是为了防止
无意中使用公用名称(如字符串)的目录
隐藏稍后在模块搜索路径上出现的有效模块。在里面
最简单的情况是,\uuuuu init\uuuuu.py
可以只是一个空文件,但它可以是一个空文件
同时执行包的初始化代码或设置\uuuu all\uuu
变量,稍后描述
第二个问题是方法=['POST']
。应该是方法
和'GET'
方法才能“正常”到达此页面:
不幸的是,方法vs.方法是一个打字错误。同时,我在日志中没有收到任何错误,因为相关代码已经就位。只是,应用程序的index.html包含动态javascript内容(bower、bootstrap等),我不确定通过python mod_wsgi应用程序获得动态内容还需要什么。如果有人有使用这种机制的经验,了解“如何在AWS实例上调试bower组件”会很有趣吗?您是否根据我的回答做了其他两个修改?您仍然需要这些方法('GET'
方法和\uuuu init\uuuu.py
文件)。对于静态文件,通常需要在Apache配置文件中定义别名。对于动态生成的Java脚本,不需要额外的步骤,只需将它们放在Jinja的
中,它们就可以工作了。同时,我在日志中没有收到任何错误,因为相关代码已经就位。只是,应用程序的index.html包含动态javascript内容(bower、bootstrap等),我不确定通过python mod_wsgi应用程序获得动态内容还需要什么。如果有人有使用这种机制的经验,了解“如何在AWS实例上调试bower组件”会很有趣吗?您是否根据我的回答做了其他两个修改?您仍然需要这些方法('GET'
方法和\uuuu init\uuuu.py
文件)。对于静态文件,通常需要在Apache配置文件中定义别名。对于动态生成的Java脚本,不需要额外的步骤,只需将它们放在Jinja的
中即可。
from flask import Blueprint
authentication = Blueprint('authentication', __name__)
@authentication.route('/facebook/', method=['POST'])
def facebook():
''' facebook login '''
access_token_url = app.config.get('FACEBOOK_ACCESS_TOKEN_URL')
graph_api_url = app.config.get('FACEBOOK_GRAPH_API_URL')
pass
@authentication.route('/facebook/', methods=['GET', 'POST'])
def facebook():
''' facebook login'''