python – Flask App只返回404,无论它是如何运行的
发布时间:2020-12-20 11:41:52 所属栏目:Python 来源:网络整理
导读:我似乎无法让我的应用程序在uWSGI上正常运行.我通过从命令行运行uWSGI将nginx从等式中取出,它表现出与在nginx上运行时完全相同的行为. uwsgi -s 0.0.0.0:5050 -w app:app --uid www-data --gid www-data --protocol=http uwsgi按如下方式处理请求: [pid:062
我似乎无法让我的应用程序在uWSGI上正常运行.我通过从命令行运行uWSGI将nginx从等式中取出,它表现出与在nginx上运行时完全相同的行为.
uwsgi -s 0.0.0.0:5050 -w app:app --uid www-data --gid www-data --protocol=http uwsgi按如下方式处理请求: [pid:0625|app: 0|req: 1/1] 192.168.1.219 () {34 vars in 737 bytes} [Tue Mar 31 11:10:30 2015] GET /admin => generated 233 bytes in 25 msecs (HTTP/1.1 404) 3 headers in 249 bytes (1 switches on core 0) 我的文件结构如下 /srv/www/cc/app/ static/ templates/ __init__.py views.py models.py forms.py 根据新的证据,它可能是我的应用程序,这是我的init.py文件: import os from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy from flask.ext.script import Manager from flask.ext.migrate import Migrate,MigrateCommand app = Flask(__name__) app.config.from_object('config') db = SQLAlchemy(app) migrate = Migrate(app,db) manager = Manager(app) manager.add_command('db',MigrateCommand) from flask.ext.mail import Mail mail = Mail(app) from app import models,forms #setup flask-security from flask.ext.security import Security,SQLAlchemyUserDatastore user_datastore = SQLAlchemyUserDatastore(db,models.User,models.Role) security = Security(app,user_datastore,confirm_register_form = forms.ExtendedConfirmRegisterForm ) from app import views 链接到我的整个views.py:http://pastebin.com/0jMTarEe 我有这个相同的应用程序,在开发早期的方式,在我有一个不同的nginx uwsgi服务器上运行,并且已经完全复制了他们的配置文件,但无济于事.我真的不知道为什么这不起作用.但根据Flask文档,以上是我应该需要的. 对于咯咯笑声,我继续将uwsgi从等式中移除.在cc文件夹中创建了一个run.py文件… python run.py: from app import app app.run('0.0.0.0',port=5050,debug=True) 请求: * Running on http://0.0.0.0:5050/ * Restarting with reloader 192.168.1.219 - - [31/Mar/2015 11:56:24] "GET / HTTP/1.1" 404 - 所以它似乎是我的应用程序的问题,而不是任何关于nginx或uwsgi的问题.我在任何地方都没有收到任何错误……可能会出错? 编辑 通过评论中的建议进行了更多挖掘.我编辑了init.py的底部: import . import views print views print app.url_map 这是我启动服务器时的输出: * Running on http://0.0.0.0:5050/ * Restarting with reloader <module 'app.views' from '/srv/www/cc/app/views.py'> Map([<Rule '/' (HEAD,POST,OPTIONS,GET) -> index>,<Rule '/admin/' (HEAD,GET) -> admin>,<Rule '/test/' (HEAD,GET) -> test> ... Lots more ... ]) 解决方法
如果您设置SERVER_NAME配置值,则它必须与应用程序外部服务的主机和端口匹配.要么将其注释掉,要么使其与服务器的域或IP匹配.
app.config['SERVER_NAME'] = 'example.com:80' 运行dev服务器时,名称将是localhost:5000,虽然在这种情况下设置它通常是没有必要的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |