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

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

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

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

Python

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

Q&A

解決済

1回答

997閲覧

app.pyからhello.pyを実行したい

shosinmono

総合スコア9

Flask

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

Python

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

1グッド

1クリップ

投稿2018/06/29 06:51

編集2018/06/29 08:57

前提・実現したいこと

hello.pyを作成して実行しています。
認証システムが必要と思いapp.pyにflask_httpauthを利用して認証させました。
認証してOKの場合hello.pyを実行する方法(呼び出し?)が分かりません。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

Python

1コード

###hello.py
from flask import Flask
app = Flask(name)

@app.route('/')
def hello_world():
return "Hello World!"

if name == 'main':
app.run()

Python

1ソースコード

試したこと

Python

1コード

###app.py
from flask import Flask

from flask import Flask
from flask_httpauth import HTTPDigestAuth

app = Flask(name)
app.config['SECRET_KEY'] = 'secret key here'
auth = HTTPDigestAuth()

id_list = {
"hoge": "hoge"
}

@auth.get_password
def get_pw(id):
if id in id_list:
return id_list.get(id)
return None

@app.route('/')
@auth.login_required

def index():
return "Hello, %s!" % auth.username()

if name == 'main':
app.run()

補足情報(FW/ツールのバージョンなど)

app.pyで認証後hello.pyを実行したいです

DrqYuto👍を押しています

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

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

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

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

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

mather

2018/06/29 06:55

hello.pyapp.py の内容を質問に書いてください。また、「実行する」とはどんな環境(コンソール, Webアプリケーション、etc)で何を実行しているかなど共有してください。
mather

2018/06/29 08:29

ソースコードはMarkdownのコードブロックで囲んで提示してください。pythonではインデントの違いで全く異なるコードになるので、とても重要です。
guest

回答1

0

ベストアンサー

なんかもう埒が明かないのでこっちで推測しますね。
おそらくこれをほぼコピペした内容かと思うんですが…。
https://flask-httpauth.readthedocs.io/en/latest/

hello.py

python

1from flask import Flask 2app = Flask(__name__) 3 4@app.route('/') 5def hello_world(): 6 return "Hello World!" 7 8if __name__ == '__main__': 9 app.run()

app.py

python

1from flask import Flask 2from flask_httpauth import HTTPDigestAuth 3 4app = Flask(__name__) 5app.config['SECRET_KEY'] = 'secret key here' 6auth = HTTPDigestAuth() 7 8id_list = { 9 "hoge": "hoge" 10} 11 12@auth.get_password 13def get_pw(id): 14 if id in id_list: 15 return id_list.get(id) 16 return None 17 18@app.route('/') 19@auth.login_required 20def index(): 21 return "Hello, %s!" % auth.username() 22 23if __name__ == '__main__': 24 app.run()

app.py から hello.py を実行することはできません。なぜならどちらもWebサーバを立ち上げることになるからです。
もし hello.py の内容を使いたければ、モジュールとして扱えるようにするか、 app.py に内容をコピーしてください。
ただし、まるまる全部コピーしても動きません。たとえばこんな感じで移植してみてはどうでしょうか。

python

1@app.route('/hello') 2@auth.login_required 3def hello_world(): 4 return "Hello World!"

どこにこのコードを置くか、どうやってアクセスすればこの部分が実行できるかはご自身で確認してください。

投稿2018/06/29 09:15

mather

総合スコア6753

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

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

shosinmono

2018/06/29 09:21

このサイトを利用するのが初めてなものでご迷惑をおかけいたしております。 なおかつPythonもやり始めたばかりなもので... ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問