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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1055閲覧

Flaskで表示するサイトのURLにindex.pyを表示したくありません

jyansinkai

総合スコア66

Flask

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/04/19 08:43

いつもお世話になっております。

XREAサーバーで動作していたFlaskをLOLIPOPへ引越させようとしています。
ディレクトリ構造は以下の通りです。

root
┠ index.py
┠ server.py
┠ .htaccess
┠ (フォルダ)A
┃ ┠A.py
┃ ┗ templates
┃ ....... ┗(フォルダ)A
┃ ....... ...... ┗ index.html
┠ (フォルダ)B
┃ ┠B.py
┃ ┗ templates
┃ ....... ┗(フォルダ)B
┃ ....... ...... ┗ index.html

XREAでは、ルートディレクトリに上記のように配置することで、
http://(サーバーから与えられた自分のページのURL)/A
と入力すればフォルダAに入ったindex.htmlが表示されました。

ところが、LOLIPOPですと、上記のように配置した場合、
http://(サーバーから与えられた自分のページのURL)/index.py/A
としなければフォルダAに入ったindex.htmlを表示させることができません。
このURLに入っている「index.py」を消したくprefixの部分を変更する等あれこれやってみましたがどうしてもindex.pyが消えません。
LOLIPOPへ移したコードは以下の通りです。改行コード、シバン等は見直し、表示はできています。

index.py

1#!/usr/local/bin/python3.7 2# coding: utf-8 3 4import cgitb 5cgitb.enable() 6 7from wsgiref.handlers import CGIHandler 8from server import app 9CGIHandler().run(app)

server.py

1#!/usr/local/bin/python3.7 2# -*- coding: utf-8 -*- 3 4import (いろいろ) 5 6# 分割したモジュールをインポート 7from A import A_app 8from B import B_app 9 10# Flask使用準備 11app = Flask(__name__) 12 13## 分割先のコントローラー(Blueprint)を登録 14app.register_blueprint(A_app, url_prefix='/A') 15app.register_blueprint(B_app, url_prefix='/B') 16 17if __name__ == '__main__': 18 app.run(debug=True)

A.py

1#!/usr/local/bin/python3.7 2# coding: utf-8 3 4from flask import Flask, render_template, url_for, request, redirect 5 6# Blueprintをimportする 7from flask import Blueprint 8 9# 関数名(index)でBlueprintオブジェクトを生成 10A_app = Blueprint('A', __name__,template_folder='templates', static_folder='static') 11 12# ルートページ 13@A_app.route('/') 14def index(): 15 return render_template('A/index.html')

どのようにすればURL内のindex.pyをなくせるか、何卒ご教授下さいませ。

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

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

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

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

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

guest

回答1

0

ベストアンサー

以下にやさしい人が環境構築法を記載してくれてるサイトがあるので参照してみてはいかがでしょうか?

ロリポップ!でpythonのpipを導入し、Flaskの環境を構築する

ただし、公式マニュアルを探してみても見当たりませんでしたので、自己責任での運用になると思いますのでご注意ください。
デフォルトでFlaskインストールをサポートしているところを使った方が公式に質問できて楽かもしれません。
まあ、そこまで親身に回答してくれるとは思えませんが。

デフォルトでPythonのFlaskをサポートしてそうなのはherokuとか、Azure App Serviceなどのクラウドサービスでしょうか?
Azure App Service以外は知りませんが、調べれば情報が多いのが見つかると思います。

投稿2022/04/19 11:07

FiroProchainezo

総合スコア2401

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

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

jyansinkai

2022/04/20 01:22

ご指導誠に有難うございます。 指南頂きましたサイトを参考に、index.pyをindex.cgiにリネームし、.htaccessの記述もその部分だけ変えました所、index.pyの表示はURLから消えました。その代わり、どういうわけかCSSが一斉に適用されなくなりました。ディレクトリ構造が独特なFlaskですので、index.cgiとリネームするとFlaskだと判断できなくなるのではとも思いましたが、Blueprintは適用されており、理解を超えました。
FiroProchainezo

2022/04/20 01:41

CSS部分のコードが質問文にない為なんとも言えませんが、もしCSSがstatic以下に配置されている場合は、そこが参照できなくなっている可能性があります。 静的ファイルも参照できるようなblueprintを追加してみてはいかがでしょうか? また、静的ファイルの参照がフルパスなどで記載されている場合は、相対パスやurl_forを使った記述に変えてみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問