前提・実現したいこと
Flaskで「Hello World!」の代わりに、World!の部分をSQLAlchemyで指定した名前にしてブラウザで表示させようとしています。
今回の場合
Hello Jack
となれば正解です。
発生している問題・エラーメッセージ
実行後すぐにはエラーメッセージが出ないのですが、ブラウザでインターナルサーバエラーが表示されてしまうのと、index() missing 1 required positional argument: 'Person'
が理解できずどのように修正すれば良いかわかりません。
ブラウザ上
Internal Server Error The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
ターミナル上
* Serving Flask app "app.py" * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off /Users/username/.pyenv/versions/3.6.0/lib/python3.6/site-packages/flask_sqlalchemy/__init__.py:814: UserWarning: Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. Defaulting SQLALCHEMY_DATABASE_URI to "sqlite:///:memory:". 'Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. ' /Users/username/.pyenv/versions/3.6.0/lib/python3.6/site-packages/flask_sqlalchemy/__init__.py:835: FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True or False to suppress this warning. 'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and ' * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) ---ブラウザでアクセス後--- TypeError: index() missing 1 required positional argument: 'Person'
該当のソースコード
実行コマンド
bash
1$ FLASK_APP=app.py flask run
app.py
python
1from flask import Flask 2from flask_sqlalchemy import SQLAlchemy 3 4app = Flask(__name__) 5db = SQLAlchemy(app) 6class Person: 7 def __init__(self, name): 8 self.name = name 9 10name = Person(name='Jack') 11 12 13@app.route('/') 14def index(self.name): 15 return 'Hello' + Person.name
試したこと
「Hellow World!」は以下のコードで問題なくできました。
python
1from flask import Flask 2 3app = Flask(__name__) 4 5@app.route('/') 6def index(): 7 return 'Hello World!'
補足情報(FW/ツールのバージョンなど)
Flask 1.1.1
sqlalchemy 1.3.10
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。