<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>python | Goal-Path（ゴールパス） info</title>
	<atom:link href="https://goal-path.com/info/tag/python/feed/" rel="self" type="application/rss+xml" />
	<link>https://goal-path.com/info</link>
	<description>属人経営を仕組みへ導く構造設計パートナー</description>
	<lastBuildDate>Sat, 04 Nov 2023 02:19:15 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://media.goal-path.com/wp-content/uploads/2023/04/11084850/cropped-goal-path_logo-32x32.png</url>
	<title>python | Goal-Path（ゴールパス） info</title>
	<link>https://goal-path.com/info</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【初心者向け】DjangoでMySQLのデータベースにおける管理画面を作成する方法</title>
		<link>https://goal-path.com/info/programing-django-database-admin/</link>
					<comments>https://goal-path.com/info/programing-django-database-admin/#respond</comments>
		
		<dc:creator><![CDATA[ともはろ@Goal-Path代表]]></dc:creator>
		<pubDate>Thu, 14 Jul 2022 13:13:36 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://info.actpose.com/?p=693</guid>

					<description><![CDATA[本記事は、以下の目的で作成しています。 Djangoをゼロから始めてデータベースの接続方法する方法が分かるDjangoのデータベースの管理画面の作成方法が分かる 目次 DjangoについてDjnagoとはデータベース(M [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本記事は、以下の目的で作成しています。</p>



<p class="has-watery-green-background-color has-background"><span class="bold"><span class="marker-under">Djangoをゼロから始めてデータベースの接続方法する方法が分かる<br>Djangoのデータベースの管理画面の作成方法が分かる</span></span></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Djangoについて</a><ol><li><a href="#toc2" tabindex="0">Djnagoとは</a></li><li><a href="#toc3" tabindex="0">データベース(MySQL)とは</a></li></ol></li><li><a href="#toc4" tabindex="0">Djangoの環境を構築する</a><ol><li><a href="#toc5" tabindex="0">Pythonとpipをインストールする</a></li><li><a href="#toc6" tabindex="0">Djangoに必要なパッケージをインストールする</a></li><li><a href="#toc7" tabindex="0">MySQLをインストールする</a></li></ol></li><li><a href="#toc8" tabindex="0">Djangoで管理画面を作成する</a><ol><li><a href="#toc9" tabindex="0">プロジェクトを作成する</a></li><li><a href="#toc10" tabindex="0">アプリケーションを作成する</a></li><li><a href="#toc11" tabindex="0">データベース処理を設定する</a></li><li><a href="#toc12" tabindex="0">管理画面を作成する</a></li></ol></li><li><a href="#toc13" tabindex="0">さいごに</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Djangoについて</span></h2>



<p>ここでは、Djangoとは何か？そして、データベースの一種であるMySQLとは何か？についてご紹介していきます。</p>



<h3 class="wp-block-heading"><span id="toc2">Djnagoとは</span></h3>



<p><span class="marker-under">Djangoは、WEBアプリに必要となる管理画面、データベース接続、ログイン認証、セキュリティ対策などを一通り作成できることができる、Webアプリのフレームワークです。</span>YoutubeやInstagramもDjangoを使ったWEBアプリです。<br>また、Djangoはプログラミング言語としてPythonを使用します。<span class="marker-under">Pythonは、少ないコードで簡潔にプログラムを書けること、特に機械学習などにおいて専門的なライブラリが豊富にあることがメリット</span>です。</p>



<p>Djangoの詳細については、以下の記事が参考になりますのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://and-engineer.com/articles/YT2muRAAACQAnsQM" title="https://and-engineer.com/articles/YT2muRAAACQAnsQM" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img fetchpriority="high" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fand-engineer.com%2Farticles%2FYT2muRAAACQAnsQM?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://and-engineer.com/articles/YT2muRAAACQAnsQM</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://and-engineer.com/articles/YT2muRAAACQAnsQM" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">and-engineer.com</div></div></div></div></a>



<p>本記事では、<strong><span class="marker-under">DjangoでWEBアプリを作成する際にほぼ必ず最初に実施する、環境のインストール、プロジェクトとアプリケーションの作成し、データベースへの接続をしたあと、管理者用の管理画面の作成するところまでの流れを紹介します。</span></strong></p>



<h3 class="wp-block-heading"><span id="toc3">データベース(MySQL)とは</span></h3>



<p><span class="marker-under">データベースとは、サーバーPCなどの格納される、構造化した情報またはデータの組織的な集合です。</span>アプリケーションのユーザーのデータなどもこのデータベースに格納されます。また、一般的なタイプのデータベースにおけるデータの読み込みや書き込みには、クエリ言語（SQL）を使用します。</p>



<p>本記事では、データベースサーバーやSQLとして、MySQLを使用します。<span class="marker-under">MySQLとは、世界でもっとも利用されている「データベース管理システム」です。</span>MySQLはオープンオースのため低コストであるにも関わらず、大規模なアプリにも使用されており、「Yahoo!」「Google」「Nokia」「YouTube」などトップ企業でも採用されています</p>



<p>MySQLの詳細については、以下の記事が参考になりますのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.sejuku.net/blog/" title="侍エンジニアブログ - プログラミング学習のすべてがココに。" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://www.sejuku.net/blog/wp-content/uploads/2024/08/shutterstock_2487936877.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">侍エンジニアブログ - プログラミング学習のすべてがココに。</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.sejuku.net/blog" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.sejuku.net</div></div></div></div></a>



<h2 class="wp-block-heading"><span id="toc4">Djangoの環境を構築する</span></h2>



<p>Djangoの環境を構築していきます。具体的には以下の流れで構築していきます。</p>



<ul class="wp-block-list">
<li>Pythonとpipをインストールする</li>



<li>Djangoに必要なパッケージをインストールする</li>



<li>MySQLをインストールする</li>
</ul>



<h3 class="wp-block-heading"><span id="toc5">Pythonとpipをインストールする</span></h3>



<p>Djangoを始める前に、Python本体と、Pythonのライブラリをインストールするために必要となるpipをインストールします。</p>



<p>Python本体のインストールについては、以下の記事をご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.sejuku.net/blog/33294" title="Pythonのインストール方法をOS別に解説（Windows・Mac・Linux） | 侍エンジニアブログ" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.sejuku.net/blog/wp-content/uploads/2017/09/python_install.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Pythonのインストール方法をOS別に解説（Windows・Mac・Linux） | 侍エンジニアブログ</div><div class="blogcard-snippet external-blogcard-snippet">この記事では「 Pythonのインストール方法をOS別に解説（Windows・Mac・Linux） 」について、誰でも理解できるように解説します。この記事を読めば、あなたの悩みが解決するだけじゃなく、新たな気付きも発見できることでしょう。お...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.sejuku.net/blog/33294" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.sejuku.net</div></div></div></div></a>



<p>pipのインストールについては、以下の記事をご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://itc.tokyo/python/install-pip/" title="404 NOT FOUND | ITC Media" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://itc.tokyo/wp-content/uploads/itc-logo.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">404 NOT FOUND | ITC Media</div><div class="blogcard-snippet external-blogcard-snippet">IT業界へのChallengeを応援します</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://itc.tokyo/404/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">itc.tokyo</div></div></div></div></a>



<h3 class="wp-block-heading"><span id="toc6">Djangoに必要なパッケージをインストールする</span></h3>



<p>Djangoに必要なパッケージのインストールや環境構築を実施していきます。</p>



<p>まずは「virtualenv」のインストールします。「virtualenv」は仮想環境を作成するためのパッケージです。ローカルPCにおいてPythonの開発を行うときは、仮想の実行環境を作成してそこにパッケージをインストールすることで、開発内容に応じて仮想環境を切り替えて使用することができるためです。</p>



<p>「virtualenv」はターミナルにおいて下記のコマンドを実行してインストールします。</p>



<pre class="wp-block-code"><code>$ pip install virtualenv</code></pre>



<p>アプリ開発用のフォルダを作成します。フォルダ名は任意で問題ないですが、ここでは「django」というフォルダを作成します。</p>



<pre class="wp-block-code"><code>$ mkdir django</code></pre>



<p>作成したフォルダに移動し、virtualenvコマンドで、仮想環境を作成します。</p>



<pre class="wp-block-code"><code>$ virtualenv -p python3 venv</code></pre>



<p>仮想環境を作成すると、「venv」というフォルダが作成されます。また、djangoフォルダ直下に「requirements.txt」を作成します。この時点で、下記のフォルダ構成となります。</p>



<pre class="wp-block-code"><code>django(フォルダ)
├── requirements.txt
└── venv（フォルダ）</code></pre>



<p>仮想環境を起動する方法は、使用しているOSにより異なり、Windowsの場合は以下のコマンドにより起動します。</p>



<pre class="wp-block-code"><code>$ venv/Scripts/activate</code></pre>



<p>Macの場合は以下のコマンドにより起動します。</p>



<pre class="wp-block-code"><code>$ source venv/bin/activate</code></pre>



<p>仮想環境を作成したら、Djangoのパッケージをインストールしていきます。まず、「requirements.txt」に以下の内容を記述します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">django/requirements.txt</span>
Django~=3.2.10
mysqlclient==2.1.0</code></pre>



<p>作成後に、以下のコマンドを実行すると仮想環境にDjangoがインストールされます。</p>



<pre class="wp-block-code"><code>(venv) $ pip install -r requirements.txt</code></pre>



<p>これで、Djangoに必要なパッケージをインストールは完了です。</p>



<h3 class="wp-block-heading"><span id="toc7">MySQLをインストールする</span></h3>



<p>MySQLをローカルPCにインストールします。インストール方法については、以下の記事をご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.fenet.jp/infla/column/server/mysql%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%AE%E6%96%B9%E6%B3%95%E3%81%A8%E3%81%AF%EF%BC%9F%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%89%8B%E9%A0%86%E3%82%92os/" title="MySQLインストールの方法とは？インストール手順をOS別に紹介 テックマガジン from FEnetインフラ" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.fenet.jp%2Finfla%2Fcolumn%2Fserver%2Fmysql%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25B9%25E3%2583%2588%25E3%2583%25BC%25E3%2583%25AB%25E3%2581%25AE%25E6%2596%25B9%25E6%25B3%2595%25E3%2581%25A8%25E3%2581%25AF%25EF%25BC%259F%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25B9%25E3%2583%2588%25E3%2583%25BC%25E3%2583%25AB%25E6%2589%258B%25E9%25A0%2586%25E3%2582%2592os%2F?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">MySQLインストールの方法とは？インストール手順をOS別に紹介 テックマガジン from FEnetインフラ</div><div class="blogcard-snippet external-blogcard-snippet">MySQLのインストール方法は使用しているパソコンのOSによって異なります。macOSを使用している場合、Homebrewを経由してインストールを行います。Windowsを使用している場合は、インストーラー経由でインストールを行います。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.fenet.jp/infla/column/server/mysql%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%ae%e6%96%b9%e6%b3%95%e3%81%a8%e3%81%af%ef%bc%9f%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e6%89%8b%e9%a0%86%e3%82%92os/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.fenet.jp</div></div></div></div></a>



<p>MySQLのインストールが完了したら、下のコマンドでMySQLの起動を行い、接続できるか確認してみましょう。</p>



<pre class="wp-block-code"><code>$ mysql -u root -p
...
mysql&gt;</code></pre>



<p>このままDjangoで使用するデータベースを作成します。mysqlに接続した状態で以下のコマンドを実行します。今回は、「database_name」という名前のデータベースを作成します。</p>



<pre class="wp-block-code"><code>mysql&gt; create database database_name;</code></pre>



<p>以下の、「show databases;」を実行して、「database_name」のデータベースが作成されていることを確認しましょう。</p>



<pre class="wp-block-code"><code>mysql&gt; show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| database_name      |
| sys                |
+--------------------+
6 rows in set (0.01 sec)</code></pre>



<h2 class="wp-block-heading"><span id="toc8">Djangoで管理画面を作成する</span></h2>



<p>Djangoの管理画面を作成していきましょう！流れとしては、以下の流れとなります。</p>



<ul class="wp-block-list">
<li>プロジェクトを作成する</li>



<li>アプリケーションを作成する</li>



<li>データベース処理を設定する</li>



<li>管理画面を作成する</li>
</ul>



<h3 class="wp-block-heading"><span id="toc9">プロジェクトを作成する</span></h3>



<p>まずはDjangoのプロジェクトを作成します。OSがmacの場合は以下のコマンドを実行してください。</p>



<pre class="wp-block-code"><code>(venv)$ django-admin startproject mysite .</code></pre>



<p>OSがwindowsの場合は以下のコマンドとなります。</p>



<pre class="wp-block-code"><code>(venv)$ django-admin.exe startproject mysite .</code></pre>



<p>コマンド実行後、下記のようにプロジェクトとなる「mysite」フォルダとプロジェクト関連のファイルが作成されます。</p>



<pre class="wp-block-code"><code>django
├── mysite // プロジェクトディレクトリ
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py　// プロジェクト設定ファイル
│   ├── urls.py　// プロジェクト用ルーティング定義ファイル
│   └── wigi.py // webサーバーとの接続用ファイル
├── manage.py　// コマンド実行ファイル
├── requirements.txt
└──  venv</code></pre>



<p>作成されたsettings.pyの、「ALLOWED_HOSTS」、「DATABASE」の部分を以下のように変更し、「STATIC_ROOT」を以下のようにファイルの最後に追加してください。</p>



<pre class="wp-block-code"><code><span class="badge-purple">django/mysite/settings.py</span>

ALLOWED_HOSTS = &#91;'localhost',]

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database_name',
        'USER': 'root',
        'PASSWORD': 'mysqlサーバーのパスワードを入力',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

STATIC_ROOT = os.path.join(BASE_DIR, 'static')</code></pre>



<h3 class="wp-block-heading"><span id="toc10">アプリケーションを作成する</span></h3>



<p>次に、プロジェクトの中にアプリケーションを作成していきます。以下のコマンドを実行するとアプリケーションの部分が作成されます。</p>



<pre class="wp-block-preformatted">(venv)$ python3 manage.py startapp app</pre>



<p>以下のように、アプリケーションディレクトリとなる「app」フォルダとアプリケーション関連のファイルが作成されます。</p>



<pre class="wp-block-code"><code>django
├── app // アプリケーションディレクトリ
│   ├── admin.py // 管理サイト設定ファイル
│   ├── apps.py // アプリケーション構成設定ファイル
│   ├── __init__.py
│   ├── migrations // マイグレーションファイルを格納するディレクトリ
│   │   └── __init__.py
│   ├── models.py // モデル定義ファイル
│   ├── tests.py // テストコードファイル
│   └── views.py // ビュー定義ファイル
├── mysite 
├── manage.py　
├── requirements.txt
└── venv</code></pre>



<p>アプリケーションを使えるようにするには、「mysite/settings.py」の「INSTALLED_APPS」 にアプリケーションを追加します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">mysite/settings.py</span>

INSTALLED_APPS = &#91;
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app', # 追加
]</code></pre>



<h3 class="wp-block-heading"><span id="toc11">データベース処理を設定する</span></h3>



<p>ここでは、データベース処理をする設定を反映していきます。</p>



<p>Djangoでは、models.pyを設定することでSQLを意識することなくデータベースに対する処理をすることが出来ます。今回は例として、投稿機能のモデルとなる「Post」クラスをmodels.pyに設定していきます。「django/app/models.py」に対して、下記のコードを記述します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">django/app/models.py</span>

from django.conf import settings
from django.db import models
from django.utils import timezone

class Post(models.Model):
	author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
	title = models.CharField("タイトル", max_length=200)
	content = models.TextField("本文")
	created = models.DateTimeField("作成日", default=timezone.now)

	def __str__(self):
		return self.title</code></pre>



<p>「author」は著者、「title」はタイトル、「content」は本文、「created」は作成日のフィールドで、それぞれ投稿した情報を格納します。Djangoではこのように、フィールドを設定したモデルのクラスを作成することで、データベースへのデータ保存と取り出しの設定を実施していきます</p>



<p>models.pyの準備が完了したのでmigrateでDjangoでデータベースを構築します。以下のコマンドによって、作成した「Post」モデルがMySQLのデータベースに反映されます。</p>



<pre class="wp-block-code"><code>(venv) $ python manage.py makemigrations
(venv) $ python manage.py migrate</code></pre>



<h3 class="wp-block-heading"><span id="toc12">管理画面を作成する</span></h3>



<p>djangoでは管理者用の管理画面がフレームワーク内に組み込まれています。管理画面は新規作成、編集、削除などのでデータベース操作を、web上で実施できる便利な画面です。ここでは管理画面でデータを操作できるよう作成して確認していきます。</p>



<p>まず、「django/app/admin.py」に下記のソースコードを追記します。具体的には、「admin.site.register」関数の引数に、「django/app/models.py」の「Post」モデルを指定し、管理画面からデータベースを操作できるようにします。</p>



<pre class="wp-block-code"><code><span class="badge-purple">django/app/admin.py</span>

from django.contrib import admin
from .models import Post

admin.site.register(Post)</code></pre>



<p>次に、ターミナルで下記コマンドを実行して、管理者ユーザーを作成します。コマンド実行後、出力される案内に応じて、管理者のユーザー名、メールアドレス、パスワードを入力します。</p>



<pre class="wp-block-code"><code>(venv) $ python3 manage.py createsuperuser</code></pre>



<p>さらにターミナルで下記のコマンドを実行して、OSがmacの場合はアプリケーションを起動させてます。</p>



<pre class="wp-block-code"><code> (venv) $　python manage.py runserver</code></pre>



<p>起動後にブラウザで<a rel="noopener noreferrer" target="_blank" href="http://localhost:8000/admin/">http://localhost:8000/admin/</a>にアクセスすると、管理画面のログイン画面が表示されます。ユーザー名とパスワードを入力すると、以下の管理画面が表示されます。この画面から、各モデルの内容を確認したり、作成、編集、削除することができます。</p>



<figure class="wp-block-image aligncenter size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/14075304/djangoAdminImage.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/14075304/djangoAdminImage.png" alt="djangoの管理画面のイメージ"/></a></figure>



<h2 class="wp-block-heading"><span id="toc13">さいごに</span></h2>



<p>これで、DjangoでのWEBアプリ作成における、環境のインストール、プロジェクトとアプリケーションの作成、データベースへの接続、管理画面の作成などの、環境構築方法についての説明を終わります。</p>



<p>本記事ではDjangoの環境構築までに留まっておりますが、実際にアプリケーションを作成してインターネットに公開するまでを知りたい、という方は、下記のリンクをぜひご覧ください！</p>




<a rel="noopener noreferrer" target="_blank" href="https://goal-path.com/app/plan/1" title="【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://goal-path.com/api/media/uploadimage/eye_catch_web_application_docker_django_aws_nginx_mysql_Y0IZtD9.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)</div><div class="blogcard-snippet external-blogcard-snippet">このプランによって、Django x Nginx x mysqlのWEBアプリをdockerコンテナ環境でイチから作成し、AWSにてインターネットに公開することが出来るようになります。このプランは、初心者・独学でもWEBアプリの作成・公開ま...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/app/plan/1" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">goal-path.com</div></div></div></div></a>
]]></content:encoded>
					
					<wfw:commentRss>https://goal-path.com/info/programing-django-database-admin/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【初心者向け】Python x Dockerの開発環境をVS Codeで構築</title>
		<link>https://goal-path.com/info/programing-vscode-docker-python/</link>
					<comments>https://goal-path.com/info/programing-vscode-docker-python/#respond</comments>
		
		<dc:creator><![CDATA[ともはろ@Goal-Path代表]]></dc:creator>
		<pubDate>Thu, 07 Jul 2022 11:02:48 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[VS code]]></category>
		<guid isPermaLink="false">https://info.actpose.com/?p=539</guid>

					<description><![CDATA[本記事では、Docker上でPythonのプログラミングを実行できる環境を、VS Codeで構築する方法について紹介します。 本記事では環境構築のみの扱いですが、環境構築だけでなく『実際にPythonで開発してWEBアプ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>本記事では、Docker上でPythonのプログラミングを実行できる環境を、VS Codeで構築する方法について紹介します。</p>



<p>本記事では環境構築のみの扱いですが、環境構築だけでなく『実際にPythonで開発してWEBアプリを公開する方法まで知りたい』という方は、下記のリンクをぜひご覧ください！</p>




<a rel="noopener noreferrer" target="_blank" href="https://goal-path.com/app/plan/1" title="【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://goal-path.com/api/media/uploadimage/eye_catch_web_application_docker_django_aws_nginx_mysql_Y0IZtD9.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)</div><div class="blogcard-snippet external-blogcard-snippet">このプランによって、Django x Nginx x mysqlのWEBアプリをdockerコンテナ環境でイチから作成し、AWSにてインターネットに公開することが出来るようになります。このプランは、初心者・独学でもWEBアプリの作成・公開ま...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://goal-path.com/app/plan/1" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">goal-path.com</div></div></div></div></a>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0"> Docker ・ Python・VS Codeの特徴とメリット </a><ol><li><a href="#toc2" tabindex="0">Pythonの特徴とメリット</a></li><li><a href="#toc3" tabindex="0">Dockerの特徴とメリット</a></li><li><a href="#toc4" tabindex="0">VS Codeの特徴とメリット </a></li></ol></li><li><a href="#toc5" tabindex="0">必要なソフトウェアをインストールする</a><ol><li><a href="#toc6" tabindex="0">Dockerをインストールする</a></li><li><a href="#toc7" tabindex="0">VS Codeをインストールする</a></li></ol></li><li><a href="#toc8" tabindex="0">Python x Dockerの開発環境を構築する</a><ol><li><a href="#toc9" tabindex="0">拡張機能をインストールする</a></li><li><a href="#toc10" tabindex="0">Pythonのコンテナを作成する</a></li><li><a href="#toc11" tabindex="0">リモートコンテナを立ち上げる</a></li></ol></li><li><a href="#toc12" tabindex="0">さいごに</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1"> Docker ・ Python・VS Codeの特徴とメリット </span></h2>



<p>まず、Python、Docker、VS Codeとは何か？それぞれの特徴とメリットについてご紹介していきます。</p>



<h3 class="wp-block-heading"><span id="toc2">Pythonの特徴とメリット</span></h3>



<p>Pythonとは、オープンソースで運営されているプログラミング言語です。<span class="marker-under">Pythonのプログラミング言語としての主な特徴は、少ないコードで簡潔にプログラムを書けること、専門的なライブラリが豊富にあることなどが挙げられます</span>。Pythonについては、下記の記事にて分かりやすく紹介されています。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.internetacademy.jp/it/programming/programming-basic/what-is-python.html" title="Python&#12392;&#12399;&#65311;&#22823;&#20154;&#27671;&#12503;&#12525;&#12464;&#12521;&#12511;&#12531;&#12464;&#35328;&#35486;&#12398;&#12513;&#12522;&#12483;&#12488;&#12420;&#27963;&#29992;&#20107;&#20363;&#12434;&#12372;&#32057;&#20171;" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.internetacademy.jp%2Fit%2Fprogramming%2Fprogramming-basic%2Fwhat-is-python.html?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Python&#12392;&#12399;&#65311;&#22823;&#20154;&#27671;&#12503;&#12525;&#12464;&#12521;&#12511;&#12531;&#12464;&#35328;&#35486;&#12398;&#12513;&#12522;&#12483;&#12488;&#12420;&#27963;&#29992;&#20107;&#20363;&#12434;&#12372;&#32057;&#20171;</div><div class="blogcard-snippet external-blogcard-snippet">「Python （パイソン）」は、今最も注目を集めているプログラミング言語です。その特長として、人工知能（機械学習や深層学習）などの最先端分野の開発にも使われている一方、文法が平易なため、プログラミング初心者の方でも大規模なWebアプリケー...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.internetacademy.jp/it/programming/programming-basic/what-is-python.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.internetacademy.jp</div></div></div></div></a>



<p>Pythonをプログラミング言語として選択することで、以下のようなメリットがあります。</p>



<ul class="has-watery-blue-background-color has-background wp-block-list">
<li>初心者でも比較的とっつきやすい</li>



<li>DjangoやFlaskなどのフレームワークによって、簡単にWEBアプリのバックエンド開発が出来る</li>



<li>機械学習やAIを活用したアプリケーションの開発が出来る</li>
</ul>



<h3 class="wp-block-heading"><span id="toc3">Dockerの特徴とメリット</span></h3>



<p><strong><span class="marker-under">Dockerとは、Docker社が開発したコンテナ環境を構築できるプラットフォーム</span>です。</strong>コンテナとはOSに仮想的なユーザ空間を作成することで、この空間上で環境を構築しアプリケーションを作成、配布、実行することができます。詳細が知りたい方は、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://frontier.networld.co.jp/3182/" title="Dockerとは？～コンテナ・Kubernetesとの関係性～ | VMware Cloud Frontier by Networld" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://frontier.networld.co.jp/wp/wp-content/uploads/2021/03/UC_what-is-docker.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Dockerとは？～コンテナ・Kubernetesとの関係性～ | VMware Cloud Frontier by Networld</div><div class="blogcard-snippet external-blogcard-snippet">Dockerとは？～コンテナ・Kubernetesとの関係性～ 多くの企業がDX推進に注力する中で、Dockerを中心としたコンテナ活用への注目度が高まってきました。さらに、コンテナを管理するKubernetesにより、より複雑な環境の管理</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://frontier.networld.co.jp/useful-container/what-is-docker/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">frontier.networld.co.jp</div></div></div></div></a>



<p><span class="marker-under">Dockerによりコンテナ環境を構築するメリットは</span>、パッケージのインストールや、WEBサーバーとの接続設定をコード化することで、<span class="marker-under">本番環境と同じ環境で開発環境をつくれることです</span>。これによって、開発環境では動いたけれど、本番環境ではうまくいかないといった、環境によるリスクを軽減することができます。</p>



<h3 class="wp-block-heading"><span id="toc4">VS Codeの特徴とメリット </span></h3>



<p><span class="marker-under"><span class="bold"><strong>VS Code(Visual Studio Code)とは、</strong>マイクロソフト社が開発したエディタ</span></span>と呼ばれるソフトウェアのひとつです。<br>通常、<strong>プログラミングによる開発はこのエディタと呼ばれる開発環境で実行</strong>していきます。</p>



<p>VS Codeの詳細は以下の記事が参考となります。</p>




<a rel="noopener noreferrer" target="_blank" href="https://techacademy.jp/magazine/39548" title="Visual Studio Codeとは？インストールや使い方も現役エンジニアが解説 | TechAcademyマガジン" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://magazine-cf.techacademy.jp/wp-content/uploads/2020/06/22121239/149568404_s-800x534.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Visual Studio Codeとは？インストールや使い方も現役エンジニアが解説 | TechAcademyマガジン</div><div class="blogcard-snippet external-blogcard-snippet">初心者向けにVisual Studio Codeについて解説しています。これはMicrosoft社が提供するコードエディタです。Visual Studio Codeの特徴とメリット、導入と設定の手順、拡張機能の一部を紹介します。エディタ検討...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://magazine.techacademy.jp/magazine/39548" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">magazine.techacademy.jp</div></div></div></div></a>



<p>また、開発環境については、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://e-words.jp/w/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83.html" title="開発環境とは - IT用語辞典 e-Words" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://p.e-words.jp/img/Development-Environment-Image.webp" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">開発環境とは - IT用語辞典 e-Words</div><div class="blogcard-snippet external-blogcard-snippet">開発環境とは、機器やソフトウェア、システムを開発するために必要な機材やソフトウェアなどの組み合わせ。また、それらを組み合わせて構成された、開発者の作業環境。開発対象により含まれるものは千差万別だが、例えばソフトウェア開発なら、作業に用いるパ...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://e-words.jp/w/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">e-words.jp</div></div></div></div></a>



<p>VS Codeをエディタとして使用することは、下記のメリットがあります。</p>



<ul class="has-watery-blue-background-color has-background wp-block-list">
<li>入力候補を自動で表示してくれるので、サクサクとコーディング出来る</li>



<li>拡張機能が豊富</li>



<li>OSのターミナルをエディタの中で操作できる</li>



<li>デバック機能がある</li>
</ul>



<h2 class="wp-block-heading"><span id="toc5">必要なソフトウェアをインストールする</span></h2>



<p>ここでは、Docker、VS Codeをインストールする方法についてそれぞれご紹介していきます。</p>



<h3 class="wp-block-heading"><span id="toc6">Dockerをインストールする</span></h3>



<p>Dockerでコンテナを作成するために、まずはDockerが実行できる環境をPCに構築します。まずは、下記の参考サイトと手順に沿ってDockerをインストールします。</p>




<a rel="noopener noreferrer" target="_blank" href="https://qiita.com/bezeklik/items/a6a7335acaec12edda45" title="Docker のインストール手順 - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMTUxNzUlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODM2OTk_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPWRkZmUzNmMwOWZiYTUyOGEyYzJiM2RmM2YwNDM5MTJh%26blend-x%3D120%26blend-y%3D467%26blend-w%3D82%26blend-h%3D82%26blend-mode%3Dnormal%26s%3D162d469081fe549bc7d2edc35e357913?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9RG9ja2VyJTIwJUUzJTgxJUFFJUUzJTgyJUE0JUUzJTgzJUIzJUUzJTgyJUI5JUUzJTgzJTg4JUUzJTgzJUJDJUUzJTgzJUFCJUU2JTg5JThCJUU5JUEwJTg2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9NjVmMjVjMzlmMDNhMjlmOWExNjE4OGZjMjlkNGNjZjI&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBiZXpla2xpayZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPWIwZDhhNWM0MjM2ZGY3M2NhZWE3ZDJlYmQ3MDAzN2Iw&#038;blend-x=242&#038;blend-y=480&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;s=d0cfad647f1d3b2edfffec871028b78e" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker のインストール手順 - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">Docker Docker のインストール方法や内容が各環境で異なるので、インストールのみに絞った記事をまとめた。 各 OS 環境ではすべてパッケージ管理ソフトを利用してコンソールからインストールすることを想定している。 各 OS 環境の情...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/bezeklik/items/a6a7335acaec12edda45" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>



<p>さらに、Docker-composeをインストールします。Docker-Composeとは、複数のDockerコンテナを同時に立ち上げるためのツールです。今回はPythonのみのコンテナとなるのでインストール必須ではありませんが、後々アプリを作成することになった場合は、他のコンテナも使用する可能性が高くなるので、この機会に導入しましょう。Docker-composeは下記のサイトの手順でインストールできます。</p>




<a rel="noopener noreferrer" target="_blank" href="https://matsuand.github.io/docs.docker.jp.onthefly/compose/install/" title="Docker Compose のインストール" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fmatsuand.github.io%2Fdocs.docker.jp.onthefly%2Fcompose%2Finstall%2F?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Compose のインストール</div><div class="blogcard-snippet external-blogcard-snippet">Docker Compose のインストール方法。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://matsuand.github.io/docs.docker.jp.onthefly/compose/install/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">matsuand.github.io</div></div></div></div></a>



<h3 class="wp-block-heading"><span id="toc7">VS Codeをインストールする</span></h3>



<p>次に、VS Codeをインストールします。VS Codeは下記の記事を参考にして、ダウンロードとインストールを実施してください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://www.javadrive.jp/vscode/install/index1.html" title="Visual Studio Codeのダウンロードとインストール" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.javadrive.jp/vscode/install/img/p1-0.webp" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Visual Studio Codeのダウンロードとインストール</div><div class="blogcard-snippet external-blogcard-snippet">Visual Studio Code のダウンロードと Windows 環境へのインストール方法について解説します。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.javadrive.jp/vscode/install/index1.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.javadrive.jp</div></div></div></div></a>



<h2 class="wp-block-heading"><span id="toc8">Python x Dockerの開発環境を構築する</span></h2>



<p>VSCode上で開発環境を構築する設定をします。VS Codeの基本操作については、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://zenn.dev/protoout/articles/19-vscode-handson" title="VSCodeの基本操作" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://res.cloudinary.com/zenn/image/upload/s--rNsOK5DP--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:VSCode%25E3%2581%25AE%25E5%259F%25BA%25E6%259C%25AC%25E6%2593%258D%25E4%25BD%259C%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:%25E3%2583%2597%25E3%2583%25AD%25E3%2583%2588%25E3%2582%25A2%25E3%2582%25A6%25E3%2583%2588%25E3%2582%25B9%25E3%2582%25BF%25E3%2582%25B8%25E3%2582%25AA%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2U4ODViMTdkMjkuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">VSCodeの基本操作</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://zenn.dev/protoout/articles/19-vscode-handson" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">zenn.dev</div></div></div></div></a>



<p>Python x Dockerの開発環境をVSCode上で構築する具体的な流れについては下記となります。</p>



<ul class="wp-block-list">
<li>拡張機能をインストールする</li>



<li>Pythonのコンテナを作成する</li>



<li>リモートコンテナを立ち上げる</li>
</ul>



<h3 class="wp-block-heading"><span id="toc9">拡張機能をインストールする</span></h3>



<p>VS Codeで必要となる拡張機能をインストールします。拡張機能は、エディタを開いた後で『Ctrl+Shift+x』によって拡張機能の検索画面を開くことが出来ます。最低限必須な拡張機能は下記となりますので、検索して全てインストールしてください。</p>



<ul class="wp-block-list">
<li>Docker  （Dockerのための拡張機能）</li>



<li>Remote-Containers  （VS Code上で Dockerに入るための拡張機能）</li>



<li>YAML  （docker-compose.ymlファイルのための拡張機能）</li>
</ul>



<p>また、必須ではないですが、下記記事の拡張機能のインストールもおすすめです。</p>



<p><a rel="noopener noreferrer" target="_blank" href="https://zenn.dev/ruru/articles/396265425c9740">【参考】VSCodeのおすすめ拡張機能と便利な設定、キーバインド集</a></p>



<h3 class="wp-block-heading"><span id="toc10">Pythonのコンテナを作成する</span></h3>



<p>まず、必要なフォルダとファイルを作成します。『docker』フォルダを作業ディレクトリとして、下記の構成で作成をします。</p>



<pre class="wp-block-code"><code>docker（フォルダ）
├── .devcontainer（フォルダ）
│   ├── devcontainer.json（ファイル）
│   └── docker-compose.yml（ファイル）
├── Python（フォルダ）
│   ├── sample.py（ファイル）
│   ├── Dockerfile（ファイル）
│   └── requirements.txt（ファイル）
└── docker-compose.yml（ファイル）</code></pre>



<p>『docker』フォルダ直下の『docker-compose.yml』を下記のように記述して、『python』という名前のコンテナを起動する設定をします。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/docker-compose.yml</span>
version: '3'
services:
  python:
    restart: always
    build:
      context: .
      dockerfile: ./Python/Dockerfile
    container_name: 'python'
    working_dir: '/code'
    tty: true
    volumes:
      - ./Python:/code</code></pre>



<p>ymlファイルの中身については、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa" title="Docker Compose - docker-compose.yml リファレンス - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMTMwMDIlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODI2MzE_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPWM0MTMxZjM0YTRmMzQwMTk4NWFkMGQzOGU2MWIzNjAx%26blend-x%3D120%26blend-y%3D462%26blend-w%3D90%26blend-h%3D90%26blend-mode%3Dnormal%26mark64%3DaHR0cHM6Ly9xaWl0YS1vcmdhbml6YXRpb24taW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkZxaWl0YS1vcmdhbml6YXRpb24taW1hZ2UlMkYxNmJlMjM1NTQ4MjZkOGE4NDRiNzQwMTg3MGM2OTNhOGE2YmUwOWI1JTJGb3JpZ2luYWwuanBnJTNGMTQ4MjgwNzAwNz9peGxpYj1yYi00LjAuMCZ3PTQ0Jmg9NDQmZml0PWNyb3AmbWFzaz1jb3JuZXJzJmNvcm5lci1yYWRpdXM9OCZiZz1GRkZGRkYmYm9yZGVyPTIlMkNGRkZGRkYmZm09cG5nMzImcz03MjI1NTIwY2ViZTkzMTMwNTdiOTA0MTQxMjE3YTg0YQ%26mark-x%3D186%26mark-y%3D515%26mark-w%3D40%26mark-h%3D40%26s%3D8c3df3005fd8677d8464936346af3488?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9RG9ja2VyJTIwQ29tcG9zZSUyMC0lMjBkb2NrZXItY29tcG9zZS55bWwlMjAlRTMlODMlQUElRTMlODMlOTUlRTMlODIlQTElRTMlODMlQUMlRTMlODMlQjMlRTMlODIlQjkmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtcGFkPTAmcz1iNTg1NDkxOGU4NzEwMTIxYmUxNDYyMWY0M2U1ZmRmMA&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDB6ZW1idXRzdSZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTdkY2MyMTBlNWQzZjgxM2E5NjMzMTIzNjIyN2Y3YWY2&#038;blend-x=242&#038;blend-y=454&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;txt64=44GV44GP44KJ44Kk44Oz44K_44O844ON44OD44OI5qCq5byP5Lya56S-&#038;txt-x=242&#038;txt-y=539&#038;txt-width=838&#038;txt-clip=end%2Cellipsis&#038;txt-color=%231E2121&#038;txt-font=Hiragino%20Sans%20W6&#038;txt-size=28&#038;s=8e46d172077fd5d6a62d4d4b4c9e8d8f" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Compose - docker-compose.yml リファレンス - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">Docker Compose - docker-compose.yml リファレンス 原文：Compose file version 3 reference docker-comp...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>



<p>次に、コンテナのイメージを作成する『Dockerfile』を下記のように記述します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/Python/Dockerfile</span>
FROM python:3
USER root

RUN apt-get update
RUN apt-get -y install locales &amp;&amp; \
    localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
RUN apt-get install -y vim less

ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8
ENV TZ JST-9
ENV TERM xterm

RUN mkdir -p /code
COPY ./Python/requirements.txt /code
WORKDIR /code

RUN pip install --upgrade pip
RUN pip install --upgrade setuptools
RUN pip install -r requirements.txt</code></pre>



<p>DockerファイルやDockerのイメージについては、以下の記事が参考になるのでぜひご覧ください。</p>




<a rel="noopener noreferrer" target="_blank" href="https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa" title="Docker Compose - docker-compose.yml リファレンス - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMTMwMDIlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODI2MzE_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPWM0MTMxZjM0YTRmMzQwMTk4NWFkMGQzOGU2MWIzNjAx%26blend-x%3D120%26blend-y%3D462%26blend-w%3D90%26blend-h%3D90%26blend-mode%3Dnormal%26mark64%3DaHR0cHM6Ly9xaWl0YS1vcmdhbml6YXRpb24taW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkZxaWl0YS1vcmdhbml6YXRpb24taW1hZ2UlMkYxNmJlMjM1NTQ4MjZkOGE4NDRiNzQwMTg3MGM2OTNhOGE2YmUwOWI1JTJGb3JpZ2luYWwuanBnJTNGMTQ4MjgwNzAwNz9peGxpYj1yYi00LjAuMCZ3PTQ0Jmg9NDQmZml0PWNyb3AmbWFzaz1jb3JuZXJzJmNvcm5lci1yYWRpdXM9OCZiZz1GRkZGRkYmYm9yZGVyPTIlMkNGRkZGRkYmZm09cG5nMzImcz03MjI1NTIwY2ViZTkzMTMwNTdiOTA0MTQxMjE3YTg0YQ%26mark-x%3D186%26mark-y%3D515%26mark-w%3D40%26mark-h%3D40%26s%3D8c3df3005fd8677d8464936346af3488?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9RG9ja2VyJTIwQ29tcG9zZSUyMC0lMjBkb2NrZXItY29tcG9zZS55bWwlMjAlRTMlODMlQUElRTMlODMlOTUlRTMlODIlQTElRTMlODMlQUMlRTMlODMlQjMlRTMlODIlQjkmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtcGFkPTAmcz1iNTg1NDkxOGU4NzEwMTIxYmUxNDYyMWY0M2U1ZmRmMA&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDB6ZW1idXRzdSZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTdkY2MyMTBlNWQzZjgxM2E5NjMzMTIzNjIyN2Y3YWY2&#038;blend-x=242&#038;blend-y=454&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;txt64=44GV44GP44KJ44Kk44Oz44K_44O844ON44OD44OI5qCq5byP5Lya56S-&#038;txt-x=242&#038;txt-y=539&#038;txt-width=838&#038;txt-clip=end%2Cellipsis&#038;txt-color=%231E2121&#038;txt-font=Hiragino%20Sans%20W6&#038;txt-size=28&#038;s=8e46d172077fd5d6a62d4d4b4c9e8d8f" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Docker Compose - docker-compose.yml リファレンス - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">Docker Compose - docker-compose.yml リファレンス 原文：Compose file version 3 reference docker-comp...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/zembutsu/items/9e9d80e05e36e882caaa" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>




<a rel="noopener noreferrer" target="_blank" href="https://and-engineer.com/articles/YaSPjRIAACAAkhMI" title="https://and-engineer.com/articles/YaSPjRIAACAAkhMI" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fand-engineer.com%2Farticles%2FYaSPjRIAACAAkhMI?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://and-engineer.com/articles/YaSPjRIAACAAkhMI</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://and-engineer.com/articles/YaSPjRIAACAAkhMI" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">and-engineer.com</div></div></div></div></a>



<p>Pythonで使用するライブラリは、『requirements.txt』の中に記述して設定します。例えば、『requests』と『beautifulsoup4』をライブラリとしてインストールする場合は、下記のように記述します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/Python/requirements.txt</span>
requests
beautifulsoup4</code></pre>



<p>次に、リモートコンテナでデバッグを実行するための設定ファイルを作成していきます。『.devcontainer』フォルダの中の、『devcontainer.json』と『docker-compose.yml』に対して、下記のように記述していきます。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/.devcontainer/devcontainer.json</span>
{
    "name": "Existing Docker Compose (Extend)",
    "dockerComposeFile": &#91;
	"../docker-compose.yml",
	"docker-compose.yml"
    ],
    "service": "python",
    "workspaceFolder": "/code",
    "settings": {
        "terminal.integrated.shell.linux": "/bin/bash"
    },
    "extensions": &#91;
        "ms-azuretools.vscode-docker",
        "ms-python.python"
    ],
    "shutdownAction": "stopCompose",
}</code></pre>



<pre class="wp-block-code"><code><span class="badge-purple">docker/.devcontainer/docker-compose.yml</span>
version: '3'
services:
  python:
    volumes:
      - .:/workspace:cached
    command: /bin/sh -c "while sleep 1000; do :; done"</code></pre>



<p>これで、環境構築に必要なファイルは作成完了です。Pythonのファイルは『Python』フォルダに作成していきます。今回は例として、『sample.py』を下記のように作成します。</p>



<pre class="wp-block-code"><code><span class="badge-purple">docker/Python/sample.py</span>
print('hello world 1')
print('hello world 2')</code></pre>



<h3 class="wp-block-heading"><span id="toc11">リモートコンテナを立ち上げる</span></h3>



<p>VSCodeのターミナル（『Ctrl+Shiht+0』で開く）から、以下のコマンドを実行して、dockerイメージをビルドした後、Pythonコンテナを起動させます。</p>



<pre class="wp-block-code"><code><span class="badge-purple">ターミナル</span>
$ docker-compose build
$ docker-compose up -d</code></pre>



<p>コンテナを起動させた後、VSCodeの画面左下にある下記画像のアイコンをクリックします。Remote-Containerのメニューから「Open Folder in Container&#8230;」を選択し、作業ディレクトリの「Docker」のフォルダを選択すると、「.devcontainer」での設定により、『python』コンテナの中に入ります。</p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/07184212/vscode_open_remote_window.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/07184212/vscode_open_remote_window.png" alt="VS Codeでリモートコンテナを開く"/></a></figure>



<p>コンテナに入った後で、『sample.py』を開くと、『F5』コマンドでデバッグ実行可能です。ここまでうまくいっていれば、ターミナルに以下が出力されます。</p>



<pre class="wp-block-code"><code><span class="badge-purple">ターミナル</span>
$ hello world 1
$ hello world 2</code></pre>



<p>また、一時停止した表の左端をクリックしブレイクポイントを設定すると、以下画像のように設定した行で一時停止してデバッグできることを確認できます。またこの環境設定で、リモートコンテナ上で、pythonファイルを作成したり、更新したりすることも可能です。</p>



<figure class="wp-block-image size-large"><a rel="noopener noreferrer" target="_blank" href="https://media.goal-path.com/wp-content/uploads/2022/07/07193155/VSCodeBrakePoint.png"><img decoding="async" src="https://media.goal-path.com/wp-content/uploads/2022/07/07193155/VSCodeBrakePoint.png" alt="VS Codeのデバッグ画面"/></a></figure>



<h2 class="wp-block-heading"><span id="toc12">さいごに</span></h2>



<p>これで、Python x Dockerの開発環境をVS Codeで構築する方法についての説明を終わります。Dockerを用いたPythonの開発環境を活用して、開発を効率化していきましょう！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://goal-path.com/info/programing-vscode-docker-python/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
