前提・実現したいこと
こちらのサイトに従い、pythonを利用し、ログインとDBへのアクセスをローカルで行えるwebページを作成しています。
ローカル上で実行したところ、POSTリクエストが通常ローカル上では送受信できない(?)と知りました。
この問題を解決したいのですが、検索してみてもいまいち要領を得ません。
皆さんのお知恵を拝借したいです。
発生している問題・エラーメッセージ
Error code: 501 Message: Can only POST to CGI scripts. Error code explanation: HTTPStatus.NOT_IMPLEMENTED - Server does not support this operation.
該当のソースコード
(ディレクトリ全体の詳細は上記のリンクを参照にしていただいた方がわかりやすいかと思います)
python
1#! /user/bin/env python 2 3# import modules 4from flask import Flask, render_template, request, session, redirect 5from dao import user_dao, select_book_dao, insert_book_dao 6from user import User 7 8# Flaskのインスタンス化 9app = Flask(__name__) 10 11# sessionを利用するためのシークレットキー 12app.secret_key = 'nohtyp' 13 14 15# URL、メソッドによる処理の振り付け 16@app.route("/", methods = ['GET','POST']) 17def hello_world(): 18 if request.method == 'GET': 19 # htmlファイルを返す 20 return render_template("index.html") 21 else: 22 #daoを利用してログインユーザーを取得する 23 user = user_dao(request.form["loginID"], request.form["password"]) 24 if user is not None: 25 # sessionにログインユーザーを追加 26 session["user"] = user.login_id 27 return redirect("books") 28 else: 29 return render_template("index.html") 30 31 32# メイン画面の処理 33@app.route("/books", methods = ["GET", "POST"]) 34def book_list(): 35 if request.method == "POST": 36 insert_book_dao(session.get("user"), request.form["bookname"]) 37 books = select_book_dao(session.get("user")) 38 # books.htmlにパラメータを渡して返す 39 return render_template("books.html", books = books) 40 41# controller.pyが実行された際にFlaskが持っている開発用サーバー(ローカル )を起動する 42if __name__ == "__main__": 43 app.run() 44
回答1件
あなたの回答
tips
プレビュー