PythonでWebサービスを作ってみたいけど、よくわからないのでそのための備忘録
Python
がプログラム言語として流行の兆しにあるのを以前エントリにしました。
最近ではインスタグラムがPythonで作られているというは有名な話ですが国内でPythonを用いたWebサービスはまだまだ少ないのが現状のようです。
以前からWebサービスを作ってみたいなと思っていましたのでPythonでWebサービスを公開するまでの流れを調べておこうと思います。
PythonでWebサービスを作ってみたいのでそのための備忘録
Pythonで作成されているサービス
- Youtube
- insatagram
- Dropbox
- tableau
- ペッパー君の感情機能
などなど
より詳細な情報はWikipediaがまとめていましたのでリンクを貼っておきます。
日本国内でも、有名どころのアプリやサービスがズラリと並んでいますね。
ただよく言われているのが、国産のサービスではPythonはあまり使われていないということです。
国内ではRubyが主流となっていますから、同じようなことができるPythonに乗り換える必要性もあまりありませんし、そもそもPythonエンジニアが少ないので、採用時などに実力を計れないというネックがあるようです。
きっかけ
Pythonについて以前からやってみたい気持ちを持っていました。Pythonについてエントリも書いています。
世界的にPythonが見直されているわけですから、今国内で流行っていないとしても、勉強しておいて損はないと思いました。
参考書も日本語版が充実してきたことですし、私もWebサービスを作ってみようと思った次第です。
ただ一人で勉強していても続かなさそうと思ったので過程をブログに備忘録としてまとめておこうと思いました。
環境構築
Pythonについては書籍を2冊買いました。
使っているマシンはSurface Pro3
OSはwin10です。
前述の書籍では、Virtual BoxとVagrantでの仮想マシンでの環境構築をしていましたので、それにならっています。
非常にわかりやすく環境構築が書かれていますので、特に躓かずに構築することが出来ました。
[adsense]
サンプルコードを動かして、やってみて思ったこと
構文についてはまったくわかっていません。
とりあえず書籍、ないしサンプルサイトに従ってプログラムをちょこちょこいじっている段階です。
参考にしている「クローリング&スクレイピング」ではHTMLの知識が必要になるわけですが、HTMLとJavascriptはずっと触ってきていた言語ということもあって、そこについては特に意識せず、要素を抽出できそうです。(スクレイピングは初めてやりました。面白いですね。)
ここで思うのが、構文を覚えたその先についての書籍がほとんどないことです。
さきほどPythonの参考書が増えてきたとは書きましたが、内容については環境構築の部分からサンプルコードを実行させるまでにとどまるものがほとんどです。
実装までの参考書となるとまだまだ数が少ない印象を受けます。
ポジティブにとらえれば「自分で考えれる領域が広い」となりますが・・・
まだ立ち読みレベルですが[blogcard url="https://www.amazon.co.jp/%E9%80%80%E5%B1%88%E3%81%AA%E3%81%93%E3%81%A8%E3%81%AFPython%E3%81%AB%E3%82%84%E3%82%89%E3%81%9B%E3%82%88%E3%81%86-%E2%80%95%E3%83%8E%E3%83%B3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%81%AB%E3%82%82%E3%81%A7%E3%81%8D%E3%82%8B%E8%87%AA%E5%8B%95%E5%8C%96%E5%87%A6%E7%90%86%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-Al-Sweigart/dp/487311778X/ref=pd_lpo_sbs_14_t_1?_encoding=UTF8&psc=1&refRID=2QC98SMAV2R61MV3YB31"]
これについては実装レベルまでもっていってくれそうです。
それからPythonでもQiitaやteratailは非常に頼りになるなという印象です。
[blogcard url="https://qiita.com/haminiku/items/711cbdb894d1d6839e3e"]
[blogcard url="https://teratail.com/questions/33373"]
大体Pythonのことで検索すると英語サイトがヒットしますが、日本語のサイトとして上記2つは非常に心強いです。
作ってみたい物
前回「おむすび」というキーワードマップ生成ツールについてエントリしました。
[blogcard url="http://wp.me/s8HJdp-omusubi"]
おむすびのようなキーワードマップ生成ツールを自作してみようかなと今は思っています。
これについて非常に面白いと感じましたのでPythonで似たようなことが出来ないか調べたところ実際にコード生成までしている方のサイトがありました。
[blogcard url="http://angelpinpoint.seesaa.net/article/453568317.html"]
PythonからAPIを呼び出して「あ」から「ん」「a」から「z」までのサジェストを返すサンプルコードを作成されていました。
ここではAPIについての資料が少なく試行錯誤されたと書かれていますね。
上記サイトのサンプルコードを私のマシンで動かしてみたのが以下の画像です。
ここでは「落合陽一」の関連キーワードを表示させています。
で、どこにHTML書くの?どうやって公開する?
何分、プログラムは書きますが、自作Webサービスなぞ作ったこともないのでわからないことだらけです。Pythonの書き方はわかったがそれをHTMLから呼び出したり、結果を返したりするのはどうするんだろ?という状況です。
検索するとDjangoやheroku、といったキーワードがよく目につきましたので、これを使うのかな?となんとなく考えています。
チュートリアルとして
上記のサイトを読ませていただいております。
といってもまずは手を動かして当たって砕けろモードでの勉強を続けていこうかなと思っていますがどうなのでしょうか・・・。
まとめ
以上です。
Pythonで何かしらのWebサービスを公開まで行ければいいなと漠然と思っていますが、一人でうんうん悩んでいてもしょうがないのでエントリしました。
少しずつではありますが前に進んでいこうと考えています。
過程についてはここで残していこうと思います。
同じような考えを持っている人がいたらお役に立てるようなものを残せていければ幸いです。
読んでいただきありがとうございます。
追記
備忘録②です。
HTMLとPythonの連携(?)まで
追記2
結論から言うとPythonからRubyへ言語を変更しました。
理由は日本語の参考資料が多くあったからです。
泣き言かと言われそうですが、初学者にとって日本語の資料が多いというのは大変魅力的です。
追記3
使用言語をRubyに変更して、自作のwebサービス「ちえのわ!」を公開いたしました。
↓
「おむすび」のようなキーワード検索ツールになっています。是非使ってみてください。
作成時の備忘録は以下
PythonからRubyに方向転換してからの備忘録です。
↓
追記4
pythonでまた勉強をはじめました。
スクレイピングに興味がでたので簡単なツールを作成してみます。
【Python】SEO対策に使うため上位100サイトをさくっと抽出するツールを作ってみる
追記5 念願叶ってpythonで作成したウェブサービスを公開しました!
2019年11月6日
この記事を書いてから約2年経ちましたが、コツコツPythonの勉強を進めて、ついにウェブサービスとして公開することに成功いたしました!
https://emotional-search.herokuapp.com/emo/
サイトのできとしてはまだまだ至らないところも多いですが、これからさらに勉強をしてよくしていきたいと思います。
ちなみに作成は全て一人で行いました。
もしpythonで、しかも個人でウェブサービスを作ってみたい!と思っている方は諦めないでください!
コツコツと勉強を続けていれば必ず、実現できることでしょう。一緒に頑張りましょう!
どうやってサイトを作ったかはまた記事にする予定です。
仕事をしながら作ったのですが、時間はどうやって作ったのか、モチベーションを保つのはどうやったのか、ということから買った本や参考にさせていただいたサイトなどをまとめて記事にします。
みなさんの、お役に立てれば幸いです。