質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.82%

Paiza lesson'FLASKで一行掲示板を作ろう'を写経してもエラーが出る

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 861

Lavieestbelle

score 10

コード
PaizaのFlaskのレッスンで、一行掲示板をつくろうというものがあります。
写経をしたんですが、エラーが出てしまいます。

bbs.py
from flask import Flask, request, render_template
import codecs
app=Flask(__name__)

@app.route("/")
def bbs():
message = "Hello World"
file = codecs.open("articles.txt", "r", "utf-8")
lines= file.readlines()
file.close()
return render_template("bbs.html", message= message, lines= lines)

@app.route("/result", method=["POST"])
def result():
message= "This is paiza"
article= request.form["article"]
name= request.form["name"]
return render_template("bbs.html", message =message , article=article,name=name)

bbs.html

{% extends "layout.html" %}
{% block content %}
<h1>1行掲示板</h1>
<p>{{ message }}</p>
<form action="/result" method="post">
<label for="article">投稿</label>
<input type="text" name="article">
<p></p>
<label for="name">名前</label>
<input type="text" name="name">
<button type="submit">送信する</button>

</form>

<h2>投稿一覧</h2>
<table>
<tr><th>投稿</th><th>名前</th></tr>
{% for line in lines: %}
{% set column =line.rstrip().split(",") %}
<tr>
{% for item in column: %}
<td>{{ item }}</td>
{% endfor %}
</tr>
{% endfor %}    
</table>

{% endblock %}

articles.txt

HEllo World, paiza
Hellopython , paiza
Hello Flask, paiza
世界の皆さんこんにちは, kirisima 
にゃー、猫

エラー

PS C:\Users\kayoc\Documents\myapp> $env:FLASK_APP="bbs.py"
PS C:\Users\kayoc\Documents\myapp> flask run

  • Serving Flask app "bbs.py"
  • Environment: production
    WARNING: Do not use the development server
    in a production environment.
    Use a production WSGI server instead.
  • Debug mode: off
    Traceback (most recent call last):
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\runpy.py", line 193, in _run_module_as_main
    "main", mod_spec)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
    File "C:\Users\kayoc\AppData\Local\Programs\Python\Python37\Scripts\flask.exe\main.py", line 9, in <module>
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 894, in main
    cli.main(args=args, prog_name=name)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 557, in main
    return super(FlaskGroup, self).main(*args, kwargs) File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 717, in main rv = self.invoke(ctx) File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 1137, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 956, in invoke return ctx.invoke(self.callback, ctx.params)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 555, in invoke
    return callback(*args, kwargs) File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\click\decorators.py", line 64, in new_func return ctx.invoke(f, obj, *args, kwargs)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 555, in invoke
    return callback(*args, kwargs) File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 767, in run_command app = DispatchingApp(info.load_app, use_eager_loading=eager_loading) File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 293, in init self._load_unlocked() File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 317, in _load_unlocked self._app = rv = self.loader() File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 372, in load_app app = locate_app(self, import_name, name) File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 235, in locate_app import(module_name) File "C:\Users\kayoc\Documents\myapp\bbs.py", line 13, in <module> @app.route("/result", method=["POST"]) File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1250, in decorator self.add_url_rule(rule, endpoint, f, options)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 66, in wrapper_func
    return f(self, *args, kwargs) File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1213, in add_url_rule rule = self.url_rule_class(rule, methods=methods, options)
    TypeError: init() got an unexpected keyword argument 'method'
    ``````
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • y_waiwai

    2019/04/10 22:40

    このままではコードが見れないので、質門を編集し、<code>ボタンで、出てくる’’’の枠の中にコードを貼り付けてください
    エラーメッセージも一緒に貼り付けていただければよろしいかと

    キャンセル

回答 2

0

https://www.subarunari.com/entry/2017/09/28/001946

methodsではなかろうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/10 22:55

    @app.route("/result", method=["POST"])
    ↑のお話

    キャンセル

  • 2019/04/11 19:44

    ごかいとういただきありがとうございます。また、返信が遅くなり申し訳ございません。
    ブラウザで試すとエラーが出ます。。

    PS C:\Users\kayoc\Documents\myapp> $env:FLASK_APP="bbs.py"
    PS C:\Users\kayoc\Documents\myapp> flask run
    * Serving Flask app "bbs.py"
    * Environment: production
    WARNING: Do not use the development server
    in a production environment.
    Use a production WSGI server instead.
    * Debug mode: off
    Traceback (most recent call last):
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
    File "C:\Users\kayoc\AppData\Local\Programs\Python\Python37\Scripts\flask.exe\__main__.py", line 9, in <module>
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 894, in main
    cli.main(args=args, prog_name=name)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 557, in main
    return super(FlaskGroup, self).main(*args, **kwargs)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 717, in main
    rv = self.invoke(ctx)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 555, in invoke
    return callback(*args, **kwargs)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\click\decorators.py", line 64, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\click\core.py", line 555, in invoke
    return callback(*args, **kwargs)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 767, in run_command
    app = DispatchingApp(info.load_app, use_eager_loading=eager_loading)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 293, in __init__
    self._load_unlocked()
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 317, in _load_unlocked
    self._app = rv = self.loader()
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 372, in load_app
    app = locate_app(self, import_name, name)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\cli.py", line 235, in locate_app
    __import__(module_name)
    File "C:\Users\kayoc\Documents\myapp\bbs.py", line 13, in <module>
    @app.route("/result", method=["POST"])
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1250, in decorator
    self.add_url_rule(rule, endpoint, f, **options)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 66, in wrapper_func
    return f(self, *args, **kwargs)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1213, in add_url_rule
    rule = self.url_rule_class(rule, methods=methods, **options)
    TypeError: __init__() got an unexpected keyword argument 'method'
    PS C:\Users\kayoc\Documents\myapp> $env:FLASK_APP="bbs.py"
    PS C:\Users\kayoc\Documents\myapp> flask run
    * Serving Flask app "bbs.py"
    * Environment: production
    WARNING: Do not use the development server
    in a production environment.
    Use a production WSGI server instead.
    * Debug mode: off
    * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
    [2019-04-11 19:39:22,760] ERROR in app: Exception on / [GET]
    Traceback (most recent call last):
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\_compat.py", line 35, in reraise
    raise value
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
    File "C:\Users\kayoc\Documents\myapp\bbs.py", line 11, in bbs
    return render_template("bbs.html", message= message, lines= lines)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\templating.py", line 134, in render_template
    return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list),
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\jinja2\environment.py", line 869, in get_or_select_template
    return self.get_template(template_name_or_list, parent, globals)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\jinja2\environment.py", line 830, in get_template
    return self._load_template(name, self.make_globals(globals))
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\jinja2\environment.py", line 804, in _load_template
    template = self.loader.load(self, name, globals)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\jinja2\loaders.py", line 113, in load
    source, filename, uptodate = self.get_source(environment, name)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\templating.py", line 58, in get_source
    return self._get_source_fast(environment,
    template)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\templating.py", line 86, in _get_source_fast
    raise TemplateNotFound(template)
    jinja2.exceptions.TemplateNotFound: bbs.html
    127.0.0.1 - - [11/Apr/2019 19:39:22] "?[1m?[35mGET / HTTP/1.1?[0m" 500 -
    PS C:\Users\kayoc\Documents\myapp> $env:FALSK_APP="bbs.py"
    PS C:\Users\kayoc\Documents\myapp> flask run
    * Serving Flask app "bbs.py"
    * Environment: production
    WARNING: Do not use the development server
    in a production environment.
    Use a production WSGI server instead.
    * Debug mode: off
    * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
    [2019-04-11 19:41:06,544] ERROR in app: Exception on / [GET]
    Traceback (most recent call last):
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\_compat.py", line 35, in reraise
    raise value
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
    File "C:\Users\kayoc\Documents\myapp\bbs.py", line 11, in bbs
    return render_template("bbs.html", message= message, lines= lines)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\templating.py", line 134, in render_template
    return _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list),
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\jinja2\environment.py", line 869, in get_or_select_template
    return self.get_template(template_name_or_list, parent, globals)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\jinja2\environment.py", line 830, in get_template
    return self._load_template(name, self.make_globals(globals))
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\jinja2\environment.py", line 804, in _load_template
    template = self.loader.load(self, name, globals)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\jinja2\loaders.py", line 113, in load
    source, filename, uptodate = self.get_source(environment, name)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\templating.py", line 58, in get_source
    return self._get_source_fast(environment,
    template)
    File "c:\users\kayoc\appdata\local\programs\python\python37\lib\site-packages\flask\templating.py", line 86, in _get_source_fast
    raise TemplateNotFound(template)
    jinja2.exceptions.TemplateNotFound: bbs.html
    127.0.0.1 - - [11/Apr/2019 19:41:06] "?[1m?[35mGET / HTTP/1.1?[0m" 500 -

    キャンセル

  • 2019/04/11 19:46

    このエラーはどのように解釈をすればよろしいのでしょうか。

    キャンセル

  • 2019/04/11 23:02

    ./templates/bbs.html
    が見つからなかったようです。

    キャンセル

0

以下のようにコードを変えてみてはいかがでしょう。

#改善前
@app.route("/result", method=["POST"])

#改善後
@app.route("/result", methods=["GET","POST"])

参考記事:TypeError: init() got an unexpected keyword argument 'method'

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/10 23:01 編集

    現状ですと、GETを入れると処理によってはサーバ側でエラーになるのはまた別のお話。

    キャンセル

  • 2019/04/11 19:45

    ご回答いただきありがとうございます。
    返信が遅くなり申し訳ございません。
    GETをいれてみましたがエラーになってしまいました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.82%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る