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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

1025閲覧

PythonAnywhereでのflask webアプリのリリース

naokiscottie

総合スコア11

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/05/31 23:16

PythonAnywhereでwebアプリをリリースしようとしています。webアプリはローカルでの動作確認を行っています。
FlaskとMySQLを使って作った簡易なwebアプリです。PythonAnywhereにMySQLの環境が用意されているため、ローカルでテストした時と同じようにSQLのテーブルをPythonAnywhereに作成してアプリを実行しようとしています。
PythonAnywhereの「 Add a new web app 」から設定を行い、mysiteのフォルダの中にflask_app.pyを作成して、このflask_app.pyを開きコードを削除して、自分が作ったflaskコードを貼り付けました。
その後、ローカルと同様にtemplatesフォルダとstaticフォルダを作成して、そのフォルダの中にファイルをアップロードしました。
その後、webアプリをリロードして実行しましたが、エラーとなりました。
エラー内容も記載しておきます。

個人的には、ライブラリを読み取れていないためエラーとなっているのではないかと思っています。
bashを開いて「pip install --user ライブラリ名」を入力して必要なライブラリをダウンロードしたつもりなのですが、コードを実行する際に必要なライブラリを読み込みにいくための設定、もしくはライブラリをダウンロードしている場所に問題があるのではと思っています。

下記コードとエラーを載せておきますので、アドバイスお願いします。

ファイル構成
flask_app.py(mysiteフォルダの中)
├─templates
│ bbs.html
│ bbs_result.html
│ bbs_result_delete.html
│ layout.html
│ option.html
|-static
|-js
test.js

flask_app.py

Flask

1from flask import Flask, request, render_template 2import codecs 3import pymysql 4 5 6app = Flask(__name__) 7 8def getConnection(): 9 return pymysql.connect(host='*********.mysql.pythonanywhere-services.com',user='********',passwd='**********',db='naokiscottie$flask',charset='utf8',cursorclass=pymysql.cursors.DictCursor) 10 11 12@app.route("/") 13def bbs(): 14 connection=getConnection() 15 16 cursor=connection.cursor() 17 18 select="id,name,content" 19 sql="SELECT {0} FROM flask_test".format(select) 20 cursor.execute(sql) 21 22 rows=cursor.fetchall() 23 24 25 connection.commit() 26 connection.close() 27 message="登録情報を入力していください。" 28 29 return render_template("bbs.html", message = message, rows=rows) 30 31 32@app.route("/result", methods=["POST"]) 33def result(): 34 message = "下記のように入力されています" 35 article = request.form["article"] 36 name = request.form["name"] 37 id = request.form["id"] 38 39 40 connection=getConnection() 41 42 cursor=connection.cursor() 43 44 a=id 45 b=name 46 c=article 47 48 49 50 insert_content=""" 51 insert flask_test values(%s,%s,%s) 52 ; 53 """ 54 cursor.execute(insert_content,(a,b,c)) 55 56 #select="id,name,content" 57 #sql="SELECT {0} FROM web_test".format(select) 58 #cursor.execute(sql) 59 60 61 connection.commit() 62 connection.close() 63 64 return render_template("bbs_result.html", message = message, article = article, name = name ,id=id) 65 66 67@app.route("/result_delete", methods=["POST"]) 68def result2(): 69 message = "id=" 70 delete_id = request.form["delete"] 71 72 73 connection=getConnection() 74 75 cursor=connection.cursor() 76 77 a=delete_id 78 79 80 81 insert_content=""" 82 delete from flask where id=(%s) 83 ; 84 """ 85 cursor.execute(insert_content,(a)) 86 87 #select="id,name,content" 88 #sql="SELECT {0} FROM web_test".format(select) 89 #cursor.execute(sql) 90 91 92 connection.commit() 93 connection.close() 94 95 return render_template("bbs_result_delete.html", message = message, delete_id=delete_id) 96 97@app.route("/option") 98def result3(): 99 100 return render_template("option.html") 101 102 103

bbs.html

html

1{% extends "layout.html" %} 2{% block content %} 3 <h1>データベース入力システム</h1> 4 <p>{{ message }}</p> 5 6 <form action="/result" method="post"> 7 <label for="id">ID</label> 8 <input type="text" name="id"> 9 <p></p> 10 <label for="name">名前</label> 11 <input type="text" name="name"> 12 <p></p> 13 <label for="article">投稿</label> 14 <input type="text" name="article"> 15 16 <button type="submit">送信する</button> 17 </form> 18<P>IDを消去したい場合,こちらにご入力ください。</P> 19 <form action="/result_delete" method="post"> 20 <label for="delete">IDの消去</label> 21 <input type="text" name="delete"> 22 23 <button type="submit">送信する</button> 24 </form> 25 26 27 <h2>投稿一覧</h2> 28 29 <table> 30 <tr><th>投稿</th><th>名前</th></tr> 31 </table> 32 {% for row in rows: %} 33 34 <p>{{ row }}</p> 35 36 {% endfor %} 37 38<p><a href="/option">option</a></p> 39 40{% endblock %}

bbs_result.html

html

1{% extends "layout.html" %} 2{% block content %} 3 <h1>書き込みました</h1> 4 <p>{{ message }}</p> 5 <P>ID</P> 6 <p>{{ id }}</p> 7 <P>NAME</P> 8 <P>{{ name }}</P> 9 <P>投稿</P> 10 <P>{{ article }}</P> 11 12 <form action="/" method="get"> 13 <button type="submit">戻る</button> 14 </form> 15{% endblock %}

bbs_result_delete.html

html

1{% extends "layout.html" %} 2{% block content %} 3 <h1>下記のIDを消去しました。</h1> 4 <p>{{ message }}</p> 5 <p>{{ delete_id }}</p> 6 7 <form action="/" method="get"> 8 <button type="submit">戻る</button> 9 </form> 10{% endblock %}

layout.html

html

1 2<!DOCTYPE html> 3<html lang="ja"> 4 <head> 5 <meta charset="utf-8"> 6 <title>Flask_test</title> 7 <style>body {padding: 10px;}</style> 8 </head> 9 <body> 10 {{ 共通テンプレート }} 11 12 {% block content %} 13 {% endblock %} 14 15 16 </body> 17</html> 18

option.html

html

1{% extends "layout.html" %} 2{% block content %} 3 <h1>テストページです。</h1> 4 5 <button type="button" onclick="ShowAlart()">javascript test</button> 6 <p></p> 7 <script src="/static/js/test.js"></script> 8 9 10 <form action="/" method="get"> 11 <button type="submit">戻る</button> 12 </form> 13{% endblock %} 14

test.js

javascript

1 2function ShowAlart() { 3 alert("成功"); 4 }

エラー内容

2021-05-28 07:06:00,299: Error running WSGI application 2021-05-28 07:06:00,301: ModuleNotFoundError: No module named 'flask_app' 2021-05-28 07:06:00,301: File "/var/www/naokiscottie_pythonanywhere_com_wsgi.py", line 16, in <module> 2021-05-28 07:06:00,301: from flask_app import app as application # noqa 2021-05-28 07:06:00,302: *************************************************** 2021-05-28 07:06:00,302: If you're seeing an import error and don't know why, 2021-05-28 07:06:00,302: we have a dedicated help page to help you debug: 2021-05-28 07:06:00,302: https://help.pythonanywhere.com/pages/DebuggingImportError/ 2021-05-28 07:06:00,302: *************************************************** 2021-05-28 07:06:10,449: Error running WSGI application 2021-05-28 07:06:10,450: ModuleNotFoundError: No module named 'flask_app' 2021-05-28 07:06:10,450: File "/var/www/naokiscottie_pythonanywhere_com_wsgi.py", line 16, in <module> 2021-05-28 07:06:10,450: from flask_app import app as application # noqa 2021-05-28 07:06:10,450: *************************************************** 2021-05-31 23:10:22,141: *************************************************** 2021-05-31 23:10:23,270: Error running WSGI application 2021-05-31 23:10:23,271: ModuleNotFoundError: No module named 'pymysql' 2021-05-31 23:10:23,271: File "/var/www/naokiscottie_pythonanywhere_com_wsgi.py", line 16, in <module> 2021-05-31 23:10:23,272: from flask_app import app as application # noqa 2021-05-31 23:10:23,272: 2021-05-31 23:10:23,272: File "/home/naokiscottie/mysite/flask_app.py", line 3, in <module> 2021-05-31 23:10:23,272: import pymysql 2021-05-31 23:10:23,272: *************************************************** 2021-05-31 23:10:23,273: If you're seeing an import error and don't know why, 2021-05-31 23:10:23,273: we have a dedicated help page to help you debug: 2021-05-31 23:10:23,273: https://help.pythonanywhere.com/pages/DebuggingImportError/ 2021-05-31 23:10:23,273: ***************************************************

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問