No Result
View All Result
WebHack
  • お知らせ
  • IoT/ガジェット
  • Webサービス
  • 通信技術
  • プログラミング
  • 電気自動車
  • お知らせ
  • IoT/ガジェット
  • Webサービス
  • 通信技術
  • プログラミング
  • 電気自動車
No Result
View All Result
WebHack
No Result
View All Result
Home プログラミング

イチからPythonでweb開発するために必要な10のステップをご紹介!

fukii by fukii
2020年6月8日
in プログラミング
0
イチからPythonでweb開発するために必要な10のステップをご紹介!
0
SHARES
6
VIEWS

近頃有名なプログラミング言語として、その地位を確固たるものにしたPythonですが、その理由は「学習コストが低い」という点と「機械学習(つまりAI)」に適しているからという理由です。

しかし、Pythonはwebアプリ開発にも適しており、DjangoやFlaskといったPythonのwebフレームワークを使うことで、誰でもwebアプリケーションを作ることができます。

そこで、ここではPythonでwebアプリケーションを作れるまでのステップを10個に分けてご紹介します。

このページを最後まで読めば、どうやったら初心者からPythonで1からwebアプリの開発ができるのかが分かりますよ!

 

目次

  • 1 Pythonでwebアプリ開発ができるようになるまで
    • 1.1 そもそもwebアプリが何なのかを知る
    • 1.2 webアプリ開発の基本を知る
    • 1.3 webの仕組みを知る
    • 1.4 webアプリ開発の要であるhtmlとcssとJavaScriptを覚える
    • 1.5 Pythonの基礎を覚える
    • 1.6 Pythonのwebフレームワークを知る
      • 1.6.1 Django
      • 1.6.2 bottle
    • 1.7 開発するのに便利なサービスの使い方を知る
      • 1.7.1 Git
      • 1.7.2 Visual Studio Code
    • 1.8 開発したwebアプリケーションを公開する方法を知る
  • 2 webアプリケーション開発の道は険しいが楽しい

Pythonでwebアプリ開発ができるようになるまで

Pythonでwebアプリ開発ができるようになるまで

ではPythonを使ってwebアプリ開発ができるようになるまでのステップを見ていきましょう。

 

そもそもwebアプリが何なのかを知る

「webアプリを作るぞ!」とフレッシュな考えを持っている方は結構多いですが、では「そもそもwebアプリって何?」という定義は、実はよく分かっていないという方も多いのではないでしょうか?

これだとwebアプリを作ることはできません。なぜならwebアプリの定義がないから。

 

まずは Wikipedia を見てみましょう。Wikipediaにはこう書かれています。

ウェブアプリケーション(Web application)は、ウェブ(World Wide Web)技術を基盤としたアプリケーションソフトウェアである。代表的なウェブアプリケーションでは、WebブラウザがHTTPを利用してHTMLを取得・表示、それをDOMを介してJavaScriptが操作し、必要に応じてWebサーバと通信をおこなってデータを更新する。このようにウェブ(World Wide Web)を基盤として作られる応用ソフトウェアをウェブアプリケーション(Webアプリ)と総称する。

 

つまり、webアプリとはwebの技術を使ったアプリケーションのことです。web技術は私たちは普段から、webブラウザを通して使用しています。webブラウザがhttpから始まるURLリクエストを送り、HTMLをレスポンスとして取得します。webサーバを介してデータベースから情報を取得したり、JavaScriptでHTMLを操作したりすることで、ユーザーとやり取りできるシステムがwebアプリケーションです。

 

webアプリ開発の基本を知る

webアプリの本質が何なのかを理解していないと、webアプリをうまく作ることはできません。

ほぼ全てのアプリケーションに言えることですが、webアプリは「ユーザーからの入力に対して結果を出力する」ことの連続です。

Youtubeで例えると、検索ボックスに文字を入力して検索するのが「入力」。その検索条件に合致した動画を表示するのが「出力」です。

入力と出力の間でデータベースにデータを保存したり、別のwebアプリと連携したりといったシステムもありますが、基本的にはwebアプリの本質はユーザーの入力と結果を出力するという点です。

 

webの仕組みを知る

実際にPythonを覚えてwebアプリケーションを開発する前に、web(world wide web)の仕組みについて理解しておくと、開発中に「今自分は何をやっているのか」が分かるので、迷子にならずに済みます(私はこの手順をすっ飛ばして迷子になりました)。

簡単に説明すると、webとはhtmlをリンク(ハイパーリンクという)で繋ぎあった全体像のことです。たくさんのhtmlが同じくたくさんのリンクで繋がっているので、その様子が蜘蛛の巣(ウェブ)に似ていることからwebと呼ばれるようになりました。

webの仕組みはここで説明するより実際に本を一冊購入してじっくり学ぶことをおすすめします。おすすめの本は「 ネットワークはなぜつながるのか 」です。少し古めの本ですが、TCP/IPプロトコルや光ファイバーなどの技術を分かりやすく教えてくれます。

 

webアプリ開発の要であるhtmlとcssとJavaScriptを覚える

webアプリを開発する場合、 絶対に避けては通れないのがhtmlとcssとJavaScriptです。

htmlはwebページの骨子を構成するマークアップ言語です。また、cssはhtmlで作ったページを装飾するための言語です。

JavaScriptはwebブラウザ側からページに動きを持たせるために使うプログラミング言語です。先ほどのWikipediaからの引用にもありましたが、JavaScriptでhtmlを操作することでwebページを動かすことができます。なので、 webページの基本はhtml です。

htmlやcss、JavaScriptの基礎を覚えるなら paizaラーニング や Progate をおすすめします。paizaラーニングは動画で、Progateはスライド形式でプログラミングの基礎を教えてくれます。

 

Pythonの基礎を覚える

webアプリを作るためには何らかのプログラミング言語を覚える必要があります。よく使われるのはPHPやRubyですが、Pythonでもwebアプリ開発は可能です。

一応全ての言語の基礎くらいは一通りやってみた著者ですが、覚えやすいプログラミング言語は

  1. Python
  2. Ruby
  3. PHP

だと思っています。PHPは人気ではあるんですが、ちょっと言語の仕様が独特だなと感じる点が多いです。

PythonとRubyは結構似ていますが、より分かりやすいのはPythonです。とにかく文法がシンプルで、コード量が少なく済む上に直感的に記述できるのが特徴的です。

なので、 初めてwebアプリを作る言語がPythonなのはあり です。

Pythonの基礎も paizaラーニング や Progate で覚えられます。html + css + JavaScript + Pythonで覚えると良いでしょう。

 

Pythonのwebフレームワークを知る

Pythonの基礎を一通り覚えたら、次にはPythonのwebフレームワークの使い方を覚えましょう。

webフレームワークとは、webアプリケーションを作る上でよく使う機能や役に立つプログラムを一つにぎゅっとまとめたシステムのことです。

webフレームワークを使わずともwebアプリ開発は可能ですが、「webフレームワークを使った方が開発の生産性が上がります」。ソフトウェアが機能が豊富になってくればなってくるほど複雑になりますが、webフレームワークを使うことである程度複雑さが軽減されます。

学習コストは上がりますが、フレームワークは実業務でも使われているので、使えるようになっておいて損はありません。

Pythonのwebフレームワークはいくつかありますが、有名なのは「Django」と「bottle」です。

 

Django

「ジャンゴ」と読みます。Web開発の面倒な部分の大部分を処理してくれるので、「車輪の再開発」をすることなく、webアプリ作成に集中できるようになっています。

例えば、 ユーザー認証、(画像や動画などの)コンテンツ管理、サイト・マップ、RSSフィードといった機能を最初から持っている ので、わざわざ自分で作る必要がありません。

他のwebフレームワークと比べてGoogleトレンドで最も検索されており、かつ日本語で紹介しているサイト数も多く、書籍も販売されているので、一番学びやすいフレームワークであると言えそうです。

 

bottle

「ボトル」と読みます。Djangoが「必要そうな機能をあらかじめ入れておいてくれる」のに対し、bottleは「とにかくシンプルで、必要な機能はあとで自分で入れてね」というスタンスのwebフレームワークです。

その分Djangoよりも軽量で、必要な機能を自分で選別できるというメリットがあります(その分少し中級者向けなイメージです)。

シンプルなwebアプリケーションを作りたい場合はbottleを選択する場合が多い印象 です。

GoogleトレンドではDjangoに続いて2番目に検索されており、日本語の書籍もあるので、比較的習得しやすいwebフレームワークです。

 

開発するのに便利なサービスの使い方を知る

Pythonを覚えて、Pythonのフレームワークを覚えるだけでもwebアプリの開発はできますが、もし余裕があればさらに効率的にアプリ開発できるサービスの使い方を覚えるとなお良いかと思います。

特にバージョン管理システムや高機能なエディタはどの現場でも標準で使われているので、むしろ「知ってないと厳しい」レベルです。

ここでは一部のみご紹介します。

 

Git

バージョン管理システムのデファクトスタンダードで、古いシステムでない限りほぼ間違いなく使われているシステムです。

バージョン管理システムとはアプリのバージョンを管理してくれるシステムの総称で、ソースコードの変更履歴を保存しておいたり、ブランチ(枝)を分けて複数のアプリのバージョンを作るといったことが可能です。

現代のwebアプリ開発では必須 レベルの知識なので、触り程度でも覚えておくと良いでしょう。

 

Visual Studio Code

Visual Studio Code(VSCode)はMicrosoftが開発・提供している高機能エディタです。

Stack OverflowというITエンジニアのためのQ&Aサイトが調査した結果、Visual Studio Codeは2019年の「最も人気な開発環境」に選ばれています。

https://insights.stackoverflow.com/survey/2019#development-environments-and-tools

私もVSCodeはよく使いますが、使い勝手良し、ビジュアル良し、あらゆる言語の拡張機能が揃っているという点で本当に重宝しています。

無料のエディタを探しているなら、何も考えずにVSCode入れておくのもあり だと思います。

 

開発したwebアプリケーションを公開する方法を知る

作ったアプリを多くの人に使ってもらいたいのであれば、アプリを公開する方法を知る必要があります。

ただし、webアプリの公開方法によっては有料になってしまう場合もあるので注意が必要です。

私がおすすめするwebアプリ公開サービスは Heroku です。

HerokuはPaaS(Platform as a Service)の中の一つです。PaaSは基本的にはOS、データベース、プログラミング言語を動かすための環境が整っているレンタルサーバのようなものです。これらの機能が全て揃っているので、 Herokuという土台の上に自分で作ったwebアプリを配置するだけでサービスを公開できます。

基本的にこういったホスティングサービスは有料ですが、Herokuはお試し無料で使えるプランがあるので、学習目的で使うのに適しています(本格的に運用することもできますが、サーバー性能的にwebアプリの挙動が遅くなったりします)。

他にもwebアプリを公開できるサービスはありますが、無料でかつ日本語文献も多いので、初めてwebサービスを公開するならHerokuが最もおすすめです。

 

webアプリケーション開発の道は険しいが楽しい

webアプリケーション開発の道は険しいが楽しい

ここまでwebアプリ開発のロードマップをご紹介しましたが「道が険しい…」と感じる方が多いかと思います。

企業が作るようなwebアプリケーションは複数人でこういったステップを踏んで作成されています。なので1人でやるのは非常に大変です。

しかし、企業と違い個人でアプリを作るのは非常に自由で楽しいものです。お金のこととかあまり考えなくて良いので気楽にできるメリットがあります。

それに、作ったwebアプリをどのような形で使うかによって、紹介したステップを一部省略することもできます。例えば個人で使いたいだけなのであればバージョン管理システムやHerokuといったホスティングサービスを使うことはありませんし、小規模なアプリならフレームワークを覚える必要はないかもしれません。

自分が作りたいwebアプリを作るのは、創造性に富んだ楽しい「ものづくり」です。ぜひ挑戦してみてくださいね。

 

Tags: bottole css Django Git html Javascript Python Visual Studio Code Webアプリケーション プログラミング 開発
Previous Post

Bluetoothはバージョン違いでも接続可能!互換性や確認方法、ワイヤレスイヤホンの音質についても解説

Next Post

【メンタリストDaiGo絶賛】リモートワークの集中力を高めるガジェット3選

fukii

fukii

Next Post
【メンタリストDaiGo絶賛】リモートワークの集中力を高めるガジェット3選

【メンタリストDaiGo絶賛】リモートワークの集中力を高めるガジェット3選

コメントを残す コメントをキャンセル

人気記事

  • 【作業効率化に最適】LGの29インチウルトラワイドモニターを徹底レビュー

    【作業効率化に最適】LGの29インチウルトラワイドモニターを徹底レビュー

    0 shares
  • 【デュアルスクリーンの4Kアクションカメラ】OSMO ACTIONを徹底レビュー

    0 shares
  • プログラミングスキルを身につけて副業に活かす、Progateの紹介

    0 shares
  • 【N高校】プログラミングコースって実際どうなの?

    0 shares
  • 【プロの映像を簡単に制作】DJIのRONIN-SCを徹底レビュー

    0 shares

カテゴリー

  • IoT/ガジェット (160)
  • Webサービス (70)
  • お知らせ (4)
  • プログラミング (40)
  • モバイルアプリ (41)
  • 自動運転 (2)
  • 通信技術 (18)
  • 電気自動車 (3)

タグ

5G AI Android Apple Bluetooth Chrome Chrome拡張機能 DJI ELECOM GoodNotes5 Google GoPro IoT iPad iPad OS iPad Pro iPhone Java Javascript kickstarter list NumPy ozmoaction pip Python Twitter Wi-Fi Wi-Fiルーター YouTube アクションカメラ アプリ オススメ キックスターター クラウドファンディング グーグル スマートフォン ディープラーニング プログラミング プログラミング言語 モバイルバッテリー リスト リモートワーク リモート会議 ワイヤレス充電器 新型コロナウイルス

WebHackはインターネットサービスやガジェットなどITトレンド情報をお伝えしていきます。

Category

  • IoT/ガジェット
  • Webサービス
  • お知らせ
  • プログラミング
  • モバイルアプリ
  • 自動運転
  • 通信技術
  • 電気自動車

Follow Us

  • プライバシーポリシー
  • お問い合わせ

Copyright © 2012 - 2017, JNews - Premium WordPress news & magazine Jegtheme .

No Result
View All Result
  • お知らせ
  • IoT/ガジェット
  • Webサービス
  • 通信技術
  • プログラミング
  • 電気自動車

Copyright © 2012 - 2017, JNews - Premium WordPress news & magazine Jegtheme .