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

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

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

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

Python

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

Q&A

0回答

302閲覧

flask データベースからのデータ取得

tiikk

総合スコア12

Flask

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

Python

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

0グッド

0クリップ

投稿2022/06/08 18:29

編集2022/06/08 18:31

flaskでデータベースと連携してデータベースから値を取得するプログラムを書いています。サイトはレンタルサーバーにあげています。
このプログラムの datas = session.query(Shohin).all()取得するコードを追加するとサイトがInternal Server Errorとなります。
データベースとの連携はsqlalchemyを使っています。取得する部分や接続の部分のコードがあっているかの確認は行って思い通りにうごきました。取得する部分のコードが違うということはないと思います。cgiの処理が違うのかなと思っています。サーバーのエラーログを見ると下記のように書いてあります。なにかわかりましたら教えてください。お願い致します。

python

1@app.route('/result', methods=['GET']) 2def Result(): 3 datas = session.query(Shohin).all() 4 return render_template("index3.html", lists=datas)

log

1malformed header from script 'index.cgi': Bad header: FROM `Shohin`

cgi

1#! /home/サイトid/anaconda3/bin/python 2from sys import path 3from wsgiref.handlers import CGIHandler 4from flask_sample import app 5 6import cgitb 7cgitb.enable() 8 9 10path.insert(0, '/サイト名/portfolio/') 11 12 13class ProxyFix(object): 14 def __init__(self, app): 15 self.app = app 16 17 def __call__(self, environ, start_response): 18 # ※要書き換え 19 environ['SERVER_NAME'] = "サイト名" 20 environ['SERVER_PORT'] = "80" 21 environ['REQUEST_METHOD'] = "GET" 22 environ['SCRIPT_NAME'] = "" 23 if 'PATH_INFO' not in environ: 24 environ['PATH_INFO'] = '' 25 environ['QUERY_STRING'] = "" 26 environ['SERVER_PROTOCOL'] = "HTTP/1.1" 27 return self.app(environ, start_response) 28 29 30if __name__ == '__main__': 31 app.wsgi_app = ProxyFix(app.wsgi_app) 32 CGIHandler().run(app) 33

htaccess

1RewriteEngine On 2RewriteCond %{REQUEST_FILENAME} !-f 3RewriteRule ^(.*)$ /portfolio/index.cgi/$1 [QSA,L]

html

1<!doctype html> 2<html lang="en"> 3<head> 4 <!-- Required meta tags --> 5 <meta charset="utf-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1"> 7</head> 8<body> 9 <div> 10 <table> 11 <thead> 12 <tr> 13 <th>ID</th> 14 <th>商品名</th> 15 <th>値段</th> 16 </tr> 17 </thead> 18 <tbody> 19 {% for item in lists %} 20 <tr> 21 <th>{{item.name}}</th> 22 </tr> 23 {% endfor %} 24 </tbody> 25 </table> 26 </div> 27 <form action='insert' method="POST"> 28 <p><新規登録></p> 29 <label> 30 商品名 31 <input type="text" name="name"> 32 </label> 33 <label > 34 値段 35 <input type="text" name="price"> 36 </label> 37 <input type="submit">登録</input> 38 </form> 39 40</body> 41</html>

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問