我正在使用 Flask 应用程序工厂模式,并且有这个 run.py 文件:
from app import create_app
app = create_app()
if __name__ == '__main__':
app.run(host='localhost', debug=True)
然后我像这样运行应用程序:
python run.py
但是当我去http://本地主机:5000 http://localhost:5000它不起作用。
它说:
未找到
在服务器上找不到请求的 URL。如果您输入了网址
请手动检查拼写并重试。
可能出什么问题了?当我有 127.0.0.1 地址时它运行良好......
我需要在“localhost”上运行,因为我正在集成方形支付,并且他们的沙箱设置要求我从“localhost”向他们的 API 发出请求。
另外,当我在浏览器中发出请求时,当烧瓶响应时,终端上会出现以下内容:
127.0.0.1 - - [09/Sep/2017 00:30:45] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [09/Sep/2017 00:30:45] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [09/Sep/2017 00:30:45] "GET /favicon.ico HTTP/1.1" 404 -
所以看起来请求到达了flask但flask返回了404。
这是我的一部分init.py 文件:
# from __future__ import print_function
# import flask
from flask import Flask, render_template, url_for, redirect, flash, request, \
session, current_app, abort
import os
# flask sqlaclhemy
from sqlalchemy import func, desc, asc, or_, and_
from flask_admin import Admin, AdminIndexView
from flask_admin.contrib.sqla import ModelView
# Flask secrutiy
from flask_security import (Security, SQLAlchemyUserDatastore,
login_required, current_user)
from flask_login import LoginManager
from flask_mail import Mail
# square connect setup
import uuid
import squareconnect
from squareconnect.rest import ApiException
# from squareconnect.apis.locations_api import LocationsApi
from squareconnect.apis.transactions_api import TransactionsApi
mail = Mail()
class CustomAdminIndexView(AdminIndexView):
def is_accessible(self):
return current_user.is_authenticated and current_user.has_role('admin')
def create_app():
app = Flask(__name__)
app.config.from_object(os.environ['APP_SETTINGS'])
mail.init_app(app)
from models import db, User, Role
db.init_app(app)
user_datastore = SQLAlchemyUserDatastore(db, User, Role)
security = Security(app, user_datastore)
@app.route('/')
def home():
return render_template('home.html')
return app