自分のPCにサーバーを建ててみた

この記事は、大阪工業大学 Advent Calendar 2019の6日目の記事です。

 

自己紹介

 初めまして、最近ポケットモンスター盾を購入してドハまりしているCrewです。 昨日(12/5)殿堂入りしたので、楽しい厳選の旅が始まりました。ポケモンは人生。
 お昼寝、食事が大好き。最近RubyRailsについてお勉強しています。

今回やったこと

 さて、今回はPythonとFlaskを使って自分のPCにwebサーバーを建ててみたので、その成果を紹介します。 なぜPythonを用いたのかというと、簡単にサーバーサイドを触れると思ったからです。
 ...結論から言うとサーバーを建ててそっちで公開してみたかったのですが、どうやらグローバルIPの問題で、外部からアクセスできないという状態に。そのため、急遽Hatena Blogの方で記事を書いて公開することにしました...😢。
 ローカル環境ではアクセスできるので、せめて画像だけは貼っておきます。

Not find
localhostでアクセスしたときの様子

開発環境

ディレクトリ構成

flaskr.py
images/
    使用する画像等
static/
    css/
        sample.css
    js/
        sample.js
    webfonts/
templates/
    index.html

 私が作ろうとしているものはwebsiteを表示するだけのものなので、最低限これくらいあれば大丈夫なはずです。

flaskr.py

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

if __name__ == "__main__":
    app.debug = True
    app.run(host = '0.0.0.0')
  • from flask import Flask
  • app.run(host = '0.0.0.0')
    この2行で簡単にサーバーが建てられて、外部からもアクセスできるようになるようです。
    app.run()だけではローカルでのみ閲覧できるみたいですね。
    また、デフォルトではポートが5000に設定されていますが、app.run(host = '0.0.0.0', port = XX)
    のようにXXで任意に指定することも可能なようです。

短くなりましたが、まとめ

 この記事を読み、自分もやってみよう!って思った方は、私のこの記事を参考にするより、ググってQiita等の記事を読んだ方が分かりやすいと思いますので、ここで締めさせて頂きます。
 PythonとFlaskでサーバーを建ててみましたが、サンプルコードがたくさん転がっていたり、公式ドキュメントが充実していたりしたため、思っていたより簡単にサーバーを建てることができそうでした...。ひょんな所からグローバルIP降ってきませんかね。
 拙い文章ですが、最後まで読んで頂き有難うございました。
 コードはすべてGitHubにあげてます。HTMLは HTML5 UPからお借りしたものです。どれもとても高品質なものばかりなので、おすすめです。
 Twitter