Oracle Cloud Hangout Cafe Season6 #4「Pythonで作るAPIサーバー」(2022年12月7日開催)
はじめに
「Oracle Cloud Hangout Cafe」(通称「おちゃかふぇ」/以降、OCHaCafe)は、日本オラクルが主催するコミュニティの1つです。定期的に、開発者・エンジニアに向けたクラウドネイティブな時代に身につけておくべきテクノロジーを深堀する勉強会を開催しています。
連載第4回の今回は、Pythonを使ったAPIサーバーをテーマとして取り上げます。機械学習などのイメージもあるPythonですが、WebフレームワークのDjango/Flask/FastAPIなど、Web APIの実装言語としても近年では人気があります。そこで、Pythonの基礎知識から、Django/Flaskそれぞれの特性、データベースとの接続など、Pythonで記述したWebアプリケーションがどのようものになるかを紹介していきます。
アジェンダ
今回は、以下のアジェンダの流れに従って、順に解説します。
- Python超基礎
- 概要、環境構築、Hello World
- PythonのWebフレームワーク
- Django、Flask、FastAPI
- PythonでAPIサーバーを作ってみよう
- データベースと接続
- コンテナ化
- gRPC with Python
発表資料と動画については、下記のリンクを参照してください。
【資料リンク】
【動画リンク】
Python超基礎
Pythonの概要
Pythonは1990年代初頭から公開されています。プログラムの「読みやすさ・わかりやすさ」を重視している言語で、インデントがコードブロックとしての意味を持つ独自の性質があります。
実用的で高い拡張性も備えるという特長があり、システム管理、ツール・アプリケーション開発、科学技術計算、Webシステムなど、幅広い分野で利用されている言語です。
Pythonの環境構築
Pythonで開発する際のキーワードについて解説します。
- PythonとAnaconda
- Python -> GeneralなPython
- 本記事はこちらを解説しており、Linux上の動作を前提
- 公式よりダウンロード
- Anaconda -> 機械学習などに利用するディストリビューション
- Python -> GeneralなPython
- Python2とPython3
- 2系と3系で互換性なし
- venvやpyenvで開発環境を分けて使い分け
- 本記事はPython3前提
- PyPI(pip)
- Pythonパッケージのインストールなどを行うユーティリティ
- Python 3.4以降には標準で付属
- venv(virtualenv)
- 公式が提供するPythonのパッケージ管理ツール
- Pythonプロジェクト毎に管理が可能
- Pythonそのもののバージョンを管理するPyenvとは使い分け(もしくは併せて利用)
- IDE(VSCode / Jupyter)
- VSCodeなどの多機能エディタにはPythonでの開発を支援する拡張機能が存在
- インタラクティブコンピューティング用としてのJupyter NotebookはPythonでの利用が一般的
・venvの使い方
Pythonが実行できるVMなどを用意し、仮想環境を作成します。コマンド内、2つ目のvenv
は、ライブラリなどがインストールされるディレクトリの名称です。
$ python -m venv venv仮想環境のアクティベート
$ . venv/bin/activate
Pythonで「Hello World」
早速Pythonを実行してみましょう。
・対話モード
まず対話モードを起動します。
$ python
Hello World
を出力してみます。
>>> print('Hello World!') Hello World!対話モードを終了させるには、以下の文を実行します。
exit()
・スクリプトで実行hello.py
というファイル名で、以下の内容を記述したファイルを作成します。
python print('Hello World!')以下のコマンドを実行します。
$ python hello.py Hello World!
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 「Python」+「PostgreSQL」のWebアプリ環境でデータの読み書きをしてみよう
- 「Dockerfile」を書いてコンテナを構築してみよう
- 「Pulumi Automation API」でPulumi CLIの機能をコード化しよう
- GitLabを用いた継続的インテグレーション
- Slackを独自アプリケーションで拡張する
- CloudサービスとRPAの連携
- VNC環境とRaspberry Piで簡単電子工作(7)
- TFXを使った機械学習パイプラインの構築(実装編その2)
- TFXを使った機械学習パイプラインの構築(デプロイ編)
- Policy as Codeでインフラのコンプライアンスを自動実現! 「Pulumi CrossGuard」を活用してみよう