Xサーバーでflaskをデプロイすると500エラーが発生してしまいます。
解決したいこと
下記記事を参考にflaskで作成したサイトをxサーバーで公開するためにデプロイ作業を行っています。
https://chikaraemon.com/wordpress/2020/09/26/xserver_flask_mysql_1/
xサーバーにコマンドでのPythonとFlaskのインストールや、
db作成、tableの作成は行いました。
xサーバーのエラーログに出力されている下記エラーを解消して画面表示とCRUD機能が使えるようにしたいのですが、
下記エラーで詰まってしまいました。
[Mon May 27 20:23:33.510466 2024] [cgid:error] [pid 2420657:tid 2420703] [client ■■■.■■.■■■.■■■:■■■■■] End of script output before headers: index.cgi
該当するソースコード
#! /home/■■■■■■■■■■/anaconda3/bin/python3
from wsgiref.handlers import CGIHandler
from app import app
CGIHandler().run(app)
import datetime
from flask import Flask, render_template, request, redirect, url_for
import mysql.connector
from mysql.connector import Error
from dotenv import load_dotenv
load_dotenv()
import os
app = Flask(__name__)
"""
*DB接続用メソッド
*引数(ホスト名、ユーザー名、パスワード、DB名)
*接続を返す
"""
def server_connection(HOST_NAME, USER_NAME, USER_PASSWORD, DATABASE_NAME):
connection = None
try:
connection = mysql.connector.connect(
host=HOST_NAME,
user=USER_NAME,
passwd=USER_PASSWORD,
database=DATABASE_NAME
)
except Error as e:
with open('error_log.txt', 'a') as f:
f.write("%s\n" % e)
return connection
"""
*全講習情報取得用メソッド
*引数(DB名)
*全講習情報を返却
"""
def select_item(DATABASE_NAME, seminar_name):
conn = server_connection(HOST_NAME, USER_NAME, USER_PASSWORD, DATABASE_NAME)
cursor = conn.cursor()
try:
cursor.execute('SELECT * FROM item_master WHERE ItemName=%s ', (item_name,))
items = cursor.fetchall()
cursor.close()
conn.close()
except Error as e:
with open('error_log.txt', 'a') as f:
f.write("%s\n" % e)
return items
"""
*items_select遷移時に表示する情報取得
*引数なし
*各講習の一覧を返す
"""
@app.route('/items_select/')
def schedule_select():
DATABASE_NAME ='■■■■■■■■■■_itemsdb'
items = select_items(DATABASE_NAME, items_name)
return render_template('items_select.html', items=items)
@app.errorhandler(404)
def page_not_found(error):
return render_template('404.html'), 404
if __name__ == "__main__":
app.run(host='0.0.0.0')
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /admin/index.cgi/$1 [QSA,L]
<Files ~ "\.py$">
deny from all
</Files>
最後まで読んでいただきありがとうございます。
もしわかる方がいらっしゃいましたら教えていただけますと幸いです。