<?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 | ビズドットオンライン</title>
	<atom:link href="https://it-biz.online/category/python/feed/" rel="self" type="application/rss+xml" />
	<link>https://it-biz.online</link>
	<description></description>
	<lastBuildDate>Fri, 15 May 2026 03:12:16 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://it-biz.online/wp-content/uploads/2019/10/cropped-4a332f05ade4ac7bb3c46c472cb5eac8-32x32.png</url>
	<title>Python | ビズドットオンライン</title>
	<link>https://it-biz.online</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Python】and・or・notとは？論理演算子を初心者向けに解説</title>
		<link>https://it-biz.online/python/python-and-or-not/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Fri, 15 May 2026 03:11:49 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10917</guid>

					<description><![CDATA[Pythonのand・or・notとは何か、if文で複数条件を書く方法、True/Falseの考え方、短絡評価、初心者がつまずきやすい書き方を解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonの<code>and</code>・<code>or</code>・<code>not</code>は、<strong><span class="marker-under">if文などの条件を組み合わせるための論理演算子</span></strong>です。</p>



<p class="wp-block-paragraph"><code>age &gt;= 20</code>のような条件が1つだけなら読みやすいですが、実際のコードでは『20歳以上かつ会員』『管理者または本人』『空でないとき』のように複数条件がよく出てきます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>andは『全部』、orは『どれか』、notは『反対』。最初はこの3つの日本語に置き換えると読みやすくなります。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、and・or・notの基本、if文での使い方、True/Falseの考え方、初心者がつまずきやすい条件式を順番に整理します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず結論：andは全部、orはどれか、notは反対</a></li><li><a href="#toc2" tabindex="0">andの使い方</a></li><li><a href="#toc3" tabindex="0">orの使い方</a></li><li><a href="#toc4" tabindex="0">notの使い方</a></li><li><a href="#toc5" tabindex="0">True/Falseだけでなく空文字や空リストも関係する</a></li><li><a href="#toc6" tabindex="0">複数条件は括弧で読みやすくする</a></li><li><a href="#toc7" tabindex="0">短絡評価をざっくり理解する</a></li><li><a href="#toc8" tabindex="0">初心者がつまずきやすいポイント</a></li><li><a href="#toc9" tabindex="0">条件を変数に分けると読みやすい</a></li><li><a href="#toc10" tabindex="0">よくある書き間違い</a></li><li><a href="#toc11" tabindex="0">notを使いすぎない</a></li><li><a href="#toc12" tabindex="0">練習するときの見方</a></li><li><a href="#toc13" tabindex="0">実務コードで意識したいこと</a></li><li><a href="#toc14" tabindex="0">公式情報と関連して読みたい記事</a></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：andは全部、orはどれか、notは反対</span></h2>



<p class="wp-block-paragraph">Python公式ドキュメントでは、任意のオブジェクトは真偽値として判定でき、<code>and</code>・<code>or</code>・<code>not</code>はその真偽値を使う演算として説明されています。初心者の段階では、まず条件式を『TrueかFalseになる問い』として読みます。</p>



<h2 class="wp-block-heading"><span id="toc2">andの使い方</span></h2>



<p class="wp-block-paragraph"><code>and</code>は、左右の条件がどちらも成り立つときにTrueとして扱います。</p>



<pre class="wp-block-code"><code>age = 25
has_ticket = True

if age &gt;= 20 and has_ticket:
    print("入場できます")</code></pre>



<p class="wp-block-paragraph">この例では、<code>age &gt;= 20</code>と<code>has_ticket</code>の両方がTrueなので、if文の中が実行されます。比較演算子の基本が不安な場合は、<a href="https://it-biz.online/python/comparison-operator/">Pythonの比較演算子</a>も確認してください。</p>



<h2 class="wp-block-heading"><span id="toc3">orの使い方</span></h2>



<p class="wp-block-paragraph"><code>or</code>は、左右の条件のどちらか一方でも成り立てばTrueとして扱います。</p>



<pre class="wp-block-code"><code>is_admin = False
is_owner = True

if is_admin or is_owner:
    print("編集できます")</code></pre>



<p class="wp-block-paragraph">この例では、管理者ではなくても本人であれば編集できます。条件を日本語で『管理者または本人なら』と読めると、コードの意味を追いやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc4">notの使い方</span></h2>



<p class="wp-block-paragraph"><code>not</code>は、条件の結果を反転します。TrueならFalse、FalseならTrueとして扱います。</p>



<pre class="wp-block-code"><code>name = ""

if not name:
    print("名前を入力してください")</code></pre>



<p class="wp-block-paragraph">空文字列は条件式の中でFalseとして扱われます。そのため、<code>not name</code>は『名前が空なら』という意味で読めます。</p>



<h2 class="wp-block-heading"><span id="toc5">True/Falseだけでなく空文字や空リストも関係する</span></h2>



<p class="wp-block-paragraph">Pythonでは、<code>True</code>や<code>False</code>だけでなく、空文字列、空リスト、0、<code>None</code>なども条件式の中でFalseとして扱われます。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>値</th><th>条件での扱い</th><th>読み方</th></tr></thead><tbody><tr><td><code>""</code></td><td>False</td><td>文字が入っていない</td></tr><tr><td><code>[]</code></td><td>False</td><td>要素がない</td></tr><tr><td><code>0</code></td><td>False</td><td>数値として0</td></tr><tr><td><code>"Python"</code></td><td>True</td><td>文字が入っている</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">この考え方は、while文やリスト処理でもよく出てきます。繰り返し条件の読み方は<a href="https://it-biz.online/python/while-2/">Pythonのwhile文</a>と合わせて理解するとつながります。</p>



<h2 class="wp-block-heading"><span id="toc6">複数条件は括弧で読みやすくする</span></h2>



<p class="wp-block-paragraph">andとorが混ざると、どこまでが1つの条件なのか分かりにくくなります。初心者のうちは、必要に応じて括弧を使い、読む単位を明確にするのがおすすめです。</p>



<pre class="wp-block-code"><code>age = 18
has_parent_permission = True
has_ticket = True

if (age &gt;= 20 or has_parent_permission) and has_ticket:
    print("入場できます")</code></pre>



<p class="wp-block-paragraph">この条件は『20歳以上または保護者の許可があり、かつチケットがある』と読みます。括弧があると、先に読むまとまりが見えます。</p>



<h2 class="wp-block-heading"><span id="toc7">短絡評価をざっくり理解する</span></h2>



<p class="wp-block-paragraph">Pythonの<code>and</code>や<code>or</code>は、結果が決まった時点で残りの評価を省略することがあります。これを短絡評価と呼びます。</p>



<pre class="wp-block-code"><code>user = None

if user is not None and user.is_active:
    print("有効なユーザーです")</code></pre>



<p class="wp-block-paragraph">この例では、<code>user is not None</code>がFalseなら、右側の<code>user.is_active</code>は評価されません。Noneの値や型判定が曖昧な場合は、<a href="https://it-biz.online/python/type-isinstance/">type関数とisinstance関数</a>の記事も参考になります。</p>



<h2 class="wp-block-heading"><span id="toc8">初心者がつまずきやすいポイント</span></h2>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>つまずき</th><th>まずこう理解する</th></tr></thead><tbody><tr><td><code>and</code>と<code>or</code>を日本語で読まない</td><td>andは『かつ』、orは『または』で読む</td></tr><tr><td><code>not</code>の範囲が分からない</td><td>notの直後の条件を反転すると考える</td></tr><tr><td>空文字や空リストをTrueだと思う</td><td>中身が空ならFalseとして扱われる</td></tr><tr><td>複雑な条件を1行に詰める</td><td>括弧や変数名で意味を分ける</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading"><span id="toc9">条件を変数に分けると読みやすい</span></h2>



<p class="wp-block-paragraph">複雑な条件は、無理に1行で書くより、意味のある変数名に分けると読みやすくなります。</p>



<pre class="wp-block-code"><code>age = 22
has_ticket = True
is_member = False

is_adult = age &gt;= 20
can_enter = is_adult and has_ticket
can_discount = is_member or age &lt; 18

if can_enter:
    print("入場できます")</code></pre>



<p class="wp-block-paragraph"><code>is_adult</code>や<code>can_enter</code>のような名前を付けると、条件式を日本語に近い形で読めます。特にandとorが混ざる場合は、変数に分けるだけで読み間違いを減らせます。</p>



<h2 class="wp-block-heading"><span id="toc10">よくある書き間違い</span></h2>



<p class="wp-block-paragraph">初心者がよく書いてしまうのが、1つの変数に対して複数の値を比べるときの書き方です。</p>



<pre class="wp-block-code"><code># 意図が伝わりにくい例
if answer == "yes" or "y":
    print("続けます")

# それぞれ比較する
if answer == "yes" or answer == "y":
    print("続けます")

# または in を使う
if answer in &#91;"yes", "y"]:
    print("続けます")</code></pre>



<p class="wp-block-paragraph"><code>or</code>の左右には、それぞれ条件式を書きます。単に文字列だけを書くと、その文字列自体がTrueとして扱われるため、意図しない結果になりやすいです。</p>



<h2 class="wp-block-heading"><span id="toc11">notを使いすぎない</span></h2>



<p class="wp-block-paragraph"><code>not</code>は便利ですが、否定が重なると読みにくくなります。</p>



<pre class="wp-block-code"><code>is_empty = len(items) == 0

if is_empty:
    print("データがありません")

if not is_empty:
    print("データがあります")</code></pre>



<p class="wp-block-paragraph">否定が読みにくいと感じたら、変数名を変えるのも手です。<code>not is_empty</code>より<code>has_items</code>の方が自然に読める場面もあります。条件式は、短さよりも読み間違いにくさを優先しましょう。</p>



<h2 class="wp-block-heading"><span id="toc12">練習するときの見方</span></h2>



<p class="wp-block-paragraph">and・or・notは、表を書いて確認すると身につきやすいです。左右の条件がTrueかFalseかを変えながら、最終結果がどう変わるかを見ます。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>andは4パターンのうち両方TrueのときだけTrue</li>



<li>orは4パターンのうち少なくとも1つTrueならTrue</li>



<li>notはTrueをFalseへ、FalseをTrueへ反転する</li>



<li>複雑な条件は小さい条件に名前を付けて確認する</li>
</ul>



<h2 class="wp-block-heading"><span id="toc13">実務コードで意識したいこと</span></h2>



<p class="wp-block-paragraph">条件式は、コンピュータが読めるだけでなく、人が後から読んでも意図が分かることが大切です。特に権限、料金、在庫、入力チェックのように間違えると影響が大きい条件では、andやorを詰め込まず、意味のある変数名や関数名に分ける方が安全です。</p>



<p class="wp-block-paragraph">たとえば<code>if user and user.is_active and user.has_paid:</code>のような条件は短く書けますが、重要な判定なら<code>can_use_service</code>のような名前に分けると、後から仕様を確認しやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc14">公式情報と関連して読みたい記事</span></h2>



<ul class="wp-block-list">
<li><a href="https://docs.python.org/3/library/stdtypes.html#truth-value-testing">Python公式ドキュメント: Truth Value Testing</a></li>



<li><a href="https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not">Python公式ドキュメント: Boolean Operations</a></li>



<li><a href="https://it-biz.online/python/if-elif/">Pythonのif文</a></li>



<li><a href="https://it-biz.online/python/comparison-operator/">Pythonの比較演算子</a></li>



<li><a href="https://it-biz.online/python/while-2/">Pythonのwhile文</a></li>
</ul>



<h2 class="wp-block-heading"><span id="toc15">まとめ</span></h2>



<p class="wp-block-paragraph"><code>and</code>・<code>or</code>・<code>not</code>は、条件式を組み立てるための基本です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>andは左右の条件が両方TrueならTrue</li>



<li>orはどちらか一方でもTrueならTrue</li>



<li>notは条件の結果を反転する</li>



<li>複雑な条件は括弧や変数名で読みやすくする</li>
</ul>



<p class="wp-block-paragraph">論理演算子を読めるようになると、if文やwhile文の条件がかなり追いやすくなります。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Python】input関数とは？キーボード入力の受け取り方を初心者向けに解説</title>
		<link>https://it-biz.online/python/python-input/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Fri, 15 May 2026 03:11:31 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10914</guid>

					<description><![CDATA[Pythonのinput関数とは何か、文字列として受け取る仕組み、intへの変換、promptの使い方、入力チェックの基本を初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonの<code>input</code>関数とは、<strong><span class="marker-under">キーボードから入力された値を文字列として受け取る関数</span></strong>です。</p>



<p class="wp-block-paragraph">画面に文字を出すだけなら<code>print</code>で十分ですが、ユーザーが入力した名前、年齢、点数などを使って処理を変えたい場合は<code>input()</code>を使います。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>最初は『inputは文字列で受け取る』だけ覚えてください。数字を入力しても、受け取った直後は文字列です。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、<code>input()</code>の基本、入力メッセージの出し方、数値へ変換する方法、入力チェックでつまずきやすい点を順番に解説します。</p>




<p class="wp-block-paragraph">次の図では、キーボードから入った文字が<code>input()</code>を通り、まず文字列として変数へ入る流れを見てください。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/python-input-mental-model.png" alt="キーボード入力がinput関数を通って文字列として変数に入る流れを示すイメージ図"/><figcaption class="wp-element-caption">input関数は、外から入ってきた1行をまず文字列として受け取る入口です。</figcaption></figure>



<p class="wp-block-paragraph">次の図では、受け取った文字列をそのまま使う道と、<code>int()</code>で数値へ変換して計算に使う道を分けて見てください。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/python-input-conversion-path.png" alt="inputで受け取った文字列をそのまま使う道とintで数値へ変換して計算する道を分けて示す説明図"/><figcaption class="wp-element-caption">表示や比較なら文字列のまま、計算するなら数値へ変換する、と用途で分けて考えます。</figcaption></figure>



  <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">まず結論：input()は入力を文字列として受け取る</a></li><li><a href="#toc2" tabindex="0">input関数の基本形</a></li><li><a href="#toc3" tabindex="0">入力メッセージを表示する</a></li><li><a href="#toc4" tabindex="0">数字を入力しても最初は文字列</a></li><li><a href="#toc5" tabindex="0">if文と組み合わせる</a></li><li><a href="#toc6" tabindex="0">入力ミスに備える</a></li><li><a href="#toc7" tabindex="0">初心者がつまずきやすいポイント</a></li><li><a href="#toc8" tabindex="0">小さな対話式プログラムで見る</a></li><li><a href="#toc9" tabindex="0">inputを読むときの順番</a></li><li><a href="#toc10" tabindex="0">練習するときのおすすめ手順</a></li><li><a href="#toc11" tabindex="0">よくある疑問</a><ol><li><a href="#toc12" tabindex="0">inputで入力した文字の最後に改行は入る？</a></li><li><a href="#toc13" tabindex="0">空のままEnterされたらどうなる？</a></li><li><a href="#toc14" tabindex="0">inputはWebフォームでも使う？</a></li></ol></li><li><a href="#toc15" tabindex="0">公式情報と関連して読みたい記事</a></li><li><a href="#toc16" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：input()は入力を文字列として受け取る</span></h2>



<p class="wp-block-paragraph">Python公式ドキュメントでは、<code>input()</code>は必要に応じてプロンプトを表示し、標準入力から1行を読み込む組み込み関数として説明されています。初心者向けには、まず『入力された1行を受け取り、文字列として返す関数』と理解すれば十分です。</p>



<h2 class="wp-block-heading"><span id="toc2">input関数の基本形</span></h2>



<p class="wp-block-paragraph">一番シンプルな使い方は、入力された値を変数に入れる形です。</p>



<pre class="wp-block-code"><code>name = input()
print(name)</code></pre>



<p class="wp-block-paragraph">このコードを実行すると、ユーザーが入力した文字が<code>name</code>に入り、その後<code>print</code>で表示されます。<code>print</code>の基本が曖昧な場合は、先に<a href="https://it-biz.online/python/print/">Pythonのprint関数</a>を確認すると読みやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc3">入力メッセージを表示する</span></h2>



<p class="wp-block-paragraph"><code>input()</code>の丸括弧の中に文字列を書くと、入力前にメッセージを表示できます。これをプロンプトとして使います。</p>



<pre class="wp-block-code"><code>name = input(&quot;名前を入力してください: &quot;)
print(&quot;こんにちは、&quot; + name + &quot;さん&quot;)</code></pre>



<p class="wp-block-paragraph">プロンプトを入れると、何を入力すればよいかが分かりやすくなります。練習用のプログラムでも、入力待ちで止まって見える不安を減らせます。</p>



<h2 class="wp-block-heading"><span id="toc4">数字を入力しても最初は文字列</span></h2>



<p class="wp-block-paragraph">inputで特に大事なのは、数字を入力しても戻り値は文字列だという点です。</p>



<pre class="wp-block-code"><code>age = input(&quot;年齢を入力してください: &quot;)
print(age + 1)  # TypeError になる</code></pre>



<p class="wp-block-paragraph">この例では、<code>age</code>は数値ではなく文字列です。そのため、<code>1</code>を足そうとするとエラーになります。</p>



<p class="wp-block-paragraph">数値として計算したい場合は、<code>int()</code>や<code>float()</code>で型変換します。型変換の基本は<a href="https://it-biz.online/python/int-float-str/">int() float() str()の記事</a>でも整理しています。</p>



<pre class="wp-block-code"><code>age_text = input(&quot;年齢を入力してください: &quot;)
age = int(age_text)
print(age + 1)</code></pre>



<h2 class="wp-block-heading"><span id="toc5">if文と組み合わせる</span></h2>



<p class="wp-block-paragraph">inputで受け取った値は、条件分岐にもよく使います。</p>



<pre class="wp-block-code"><code>answer = input(&quot;続けますか？ yes/no: &quot;)

if answer == &quot;yes&quot;:
    print(&quot;続けます&quot;)
else:
    print(&quot;終了します&quot;)</code></pre>



<p class="wp-block-paragraph">このように、入力値によって処理を変えると小さな対話式プログラムになります。条件分岐の読み方は<a href="https://it-biz.online/python/if-elif/">Pythonのif文</a>と合わせて押さえると理解しやすいです。</p>



<h2 class="wp-block-heading"><span id="toc6">入力ミスに備える</span></h2>



<p class="wp-block-paragraph"><code>int(input())</code>は便利ですが、数字以外が入力されると<code>ValueError</code>になります。ユーザー入力は間違える前提で考えるのが基本です。</p>



<pre class="wp-block-code"><code>try:
    score = int(input(&quot;点数を入力してください: &quot;))
    print(score &gt;= 60)
except ValueError:
    print(&quot;数字を入力してください&quot;)</code></pre>



<p class="wp-block-paragraph">ここでは、数値に変換できない入力を<code>try-except</code>で受け止めています。例外処理が初めてなら、<a href="https://it-biz.online/python/try-except/">Pythonのtry-except</a>を先に読んでおくと安心です。</p>



<h2 class="wp-block-heading"><span id="toc7">初心者がつまずきやすいポイント</span></h2>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>つまずき</th><th>まずこう理解する</th></tr></thead><tbody><tr><td>数字を入力したら数値になると思う</td><td><code>input()</code>の戻り値は常に文字列として扱う</td></tr><tr><td>入力待ちで止まっているのをエラーだと思う</td><td>ユーザーの入力を待っている状態</td></tr><tr><td><code>int(input())</code>だけで書く</td><td>最初は変数を分けると読みやすい</td></tr><tr><td>入力ミスを考えない</td><td>実用では<code>try-except</code>や条件分岐で確認する</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading"><span id="toc8">小さな対話式プログラムで見る</span></h2>



<p class="wp-block-paragraph">inputは、単体で覚えるよりも、<code>print</code>、型変換、if文と組み合わせて小さなプログラムにすると理解しやすくなります。</p>



<pre class="wp-block-code"><code>name = input(&quot;名前: &quot;)
age_text = input(&quot;年齢: &quot;)
age = int(age_text)

if age &gt;= 20:
    print(f&quot;{name}さんは成人です&quot;)
else:
    print(f&quot;{name}さんは未成年です&quot;)</code></pre>



<p class="wp-block-paragraph">この例では、名前はそのまま文字列として使い、年齢だけを<code>int</code>へ変換しています。すべての入力を数値に変換するのではなく、『何に使う値か』を見て変換するか決めるのがポイントです。</p>



<h2 class="wp-block-heading"><span id="toc9">inputを読むときの順番</span></h2>



<p class="wp-block-paragraph">コードを読むときは、まず<code>input</code>がどの変数へ入っているかを見ます。次に、その変数が文字列のまま使われているのか、<code>int</code>や<code>float</code>で変換されているのかを確認します。最後に、変換後の値がif文や計算に使われているかを追います。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>確認すること</th><th>見る場所</th><th>例</th></tr></thead><tbody><tr><td>何を入力するか</td><td>プロンプト</td><td><code>"年齢を入力してください"</code></td></tr><tr><td>どの変数に入るか</td><td>代入の左側</td><td><code>age_text = input(...)</code></td></tr><tr><td>型変換するか</td><td>次の行</td><td><code>age = int(age_text)</code></td></tr><tr><td>どこで使うか</td><td>if文や計算</td><td><code>age &gt;= 20</code></td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading"><span id="toc10">練習するときのおすすめ手順</span></h2>



<p class="wp-block-paragraph">最初から長いプログラムを書く必要はありません。まずは1つの入力を受け取り、そのまま表示するところから始めます。次に、数値へ変換して計算し、最後にif文で処理を分けると段階的に理解できます。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>名前を入力して挨拶を表示する</li>
  <li>年齢を入力して来年の年齢を表示する</li>
  <li>点数を入力して合格か不合格を表示する</li>
  <li>数字以外が入力されたときのエラーをtry-exceptで受ける</li>
</ul>



<p class="wp-block-paragraph">入力を扱えるようになると、練習問題の幅が一気に広がります。画面に固定値を出すだけでなく、ユーザーが入れた値によって結果が変わるプログラムを作れるからです。</p>



<h2 class="wp-block-heading"><span id="toc11">よくある疑問</span></h2>



<h3 class="wp-block-heading"><span id="toc12">inputで入力した文字の最後に改行は入る？</span></h3>



<p class="wp-block-paragraph"><code>input()</code>は、ユーザーがEnterキーを押すまでの1行を読み込みます。戻り値には、通常そのEnterによる改行文字は含まれません。そのため、入力された文字列をそのまま比較できます。</p>



<h3 class="wp-block-heading"><span id="toc13">空のままEnterされたらどうなる？</span></h3>



<p class="wp-block-paragraph">何も入力せずにEnterを押すと、空文字列<code>""</code>が返ります。必須入力にしたい場合は、空文字列かどうかをif文で確認します。</p>



<pre class="wp-block-code"><code>name = input(&quot;名前: &quot;)

if name == &quot;&quot;:
    print(&quot;名前は必須です&quot;)
else:
    print(f&quot;こんにちは、{name}さん&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc14">inputはWebフォームでも使う？</span></h3>



<p class="wp-block-paragraph"><code>input()</code>は、主にターミナルで動く小さなプログラムや学習用コードで使います。Webアプリでは、HTMLフォームやフレームワーク側の仕組みで入力を受け取るため、同じ名前の入力欄とは役割が違います。</p>



<p class="wp-block-paragraph">そのため、DjangoなどのWebフレームワークへ進む前の段階では、inputで『外から値が入ってくる感覚』を作っておくと役立ちます。後でフォーム処理を学ぶときも、入力値を受け取り、検証し、型を整えて使うという流れは共通しています。学習初期の小さな練習として、かなり効果が高い題材です。</p>



<h2 class="wp-block-heading"><span id="toc15">公式情報と関連して読みたい記事</span></h2>



<ul class="wp-block-list">
  <li><a href="https://docs.python.org/3/library/functions.html#input">Python公式ドキュメント: input()</a></li>
  <li><a href="https://it-biz.online/python/print/">Pythonのprint関数</a></li>
  <li><a href="https://it-biz.online/python/int-float-str/">int() float() str() データ型変換</a></li>
  <li><a href="https://it-biz.online/python/if-elif/">Pythonのif文</a></li>
  <li><a href="https://it-biz.online/python/try-except/">Pythonのtry-except</a></li>
</ul>



<h2 class="wp-block-heading"><span id="toc16">まとめ</span></h2>



<p class="wp-block-paragraph"><code>input()</code>は、ユーザーから入力を受け取るための組み込み関数です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>入力値はまず文字列として受け取る</li>
  <li>プロンプトを入れると入力内容が分かりやすい</li>
  <li>計算に使うなら<code>int()</code>や<code>float()</code>で変換する</li>
  <li>入力ミスに備えて条件分岐や例外処理を使う</li>
</ul>



<p class="wp-block-paragraph">inputを理解すると、printだけのプログラムから、ユーザーの入力に反応するプログラムへ進めます。</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Python】venvとpipとは？仮想環境とパッケージ管理を初心者向けに解説</title>
		<link>https://it-biz.online/python/python-venv-pip/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Fri, 15 May 2026 03:11:21 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10926</guid>

					<description><![CDATA[Pythonのvenvとpipとは何か、仮想環境を作る理由、pip installの基本、requirements.txt、プロジェクトごとに環境を分ける考え方を解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonの<code>venv</code>と<code>pip</code>は、<strong><span class="marker-under">プロジェクトごとに使うライブラリを分けて管理するための基本ツール</span></strong>です。</p>



<p class="wp-block-paragraph">Pythonをインストールした直後は、標準ライブラリだけで学習できます。しかし、Excel操作、Webアプリ、データ分析などへ進むと、外部パッケージを入れる場面が出てきます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>venvは『場所を分ける』、pipは『必要なものを入れる』。この2つを分けて考えると理解しやすくなります。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、venvとpipの役割、仮想環境を作る理由、基本コマンド、requirements.txtの考え方、初心者が避けたい失敗を整理します。</p>




<p class="wp-block-paragraph">次の図では、venvをプロジェクトごとに分かれた専用の部屋として見てください。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/python-venv-islands.png" alt="Project AとProject Bが別々のvenvという部屋を持ちパッケージが混ざらないことを示すイメージ図"/><figcaption class="wp-element-caption">venvは、プロジェクトごとに必要なパッケージを分けて置くための専用スペースです。</figcaption></figure>



<p class="wp-block-paragraph">次の図では、<code>pip install</code>で外部パッケージがどこへ入り、コードからどう使われるかを確認してください。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/python-pip-install-flow.png" alt="PyPIからpip installでvenv内のsite-packagesへ入りPythonコードがimportして使う流れを示す説明図"/><figcaption class="wp-element-caption">pipは外部パッケージを環境へ入れ、Pythonコードはimportでそのパッケージを読み込みます。</figcaption></figure>



  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず結論：venvは環境、pipはインストール担当</a></li><li><a href="#toc2" tabindex="0">なぜ仮想環境が必要なのか</a></li><li><a href="#toc3" tabindex="0">venvで仮想環境を作る</a></li><li><a href="#toc4" tabindex="0">pipでパッケージを入れる</a></li><li><a href="#toc5" tabindex="0">パッケージを確認する</a></li><li><a href="#toc6" tabindex="0">requirements.txtで共有する</a></li><li><a href="#toc7" tabindex="0">Excel操作やDjangoへ進むと必要になる</a></li><li><a href="#toc8" tabindex="0">初心者がつまずきやすいポイント</a></li><li><a href="#toc9" tabindex="0">よくある疑問</a><ol><li><a href="#toc10" tabindex="0">仮想環境フォルダはGitに入れる？</a></li><li><a href="#toc11" tabindex="0">pipとimportは同じ？</a></li></ol></li><li><a href="#toc12" tabindex="0">コマンドを実行する場所を分けて考える</a></li><li><a href="#toc13" tabindex="0">仮想環境は作り直せる</a></li><li><a href="#toc14" tabindex="0">pip installで入るものとimport名が違うことがある</a></li><li><a href="#toc15" tabindex="0">練習用プロジェクトの流れ</a></li><li><a href="#toc16" tabindex="0">公式情報と関連して読みたい記事</a></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：venvは環境、pipはインストール担当</span></h2>



<p class="wp-block-paragraph">Python公式ドキュメントでは、<code>venv</code>は仮想環境を作成する標準ライブラリとして説明されています。Python Packaging User Guideでは、pipはパッケージの推奨インストーラとして紹介されています。</p>



<h2 class="wp-block-heading"><span id="toc2">なぜ仮想環境が必要なのか</span></h2>



<p class="wp-block-paragraph">仮想環境を使う理由は、プロジェクトごとに必要なライブラリやバージョンが違うからです。</p>



<p class="wp-block-paragraph">たとえば、ある学習用プロジェクトでは古いライブラリを使い、別のWebアプリでは新しいライブラリを使うことがあります。すべてを同じ場所へ入れると、片方の更新がもう片方を壊すことがあります。</p>



<p class="wp-block-paragraph">venvを使うと、プロジェクト専用のPython環境を作り、その中にだけパッケージを入れられます。</p>



<h2 class="wp-block-heading"><span id="toc3">venvで仮想環境を作る</span></h2>



<p class="wp-block-paragraph">プロジェクトのフォルダで、次のように仮想環境を作ります。</p>



<pre class="wp-block-code"><code># macOS / Linux
python3 -m venv .venv
source .venv/bin/activate

# Windows PowerShell
py -m venv .venv
.venv\Scripts\Activate.ps1</code></pre>



<p class="wp-block-paragraph"><code>.venv</code>は仮想環境のフォルダ名です。名前は変えられますが、初心者のうちはプロジェクト内に<code>.venv</code>として作ると見通しがよくなります。Python本体のインストールがまだの場合は、<a href="https://it-biz.online/python/install/">Windows版Pythonのインストール方法</a>から確認してください。</p>



<h2 class="wp-block-heading"><span id="toc4">pipでパッケージを入れる</span></h2>



<p class="wp-block-paragraph">仮想環境を有効にしたら、pipで必要なパッケージを入れます。</p>



<pre class="wp-block-code"><code>python -m pip install requests
python -m pip install openpyxl</code></pre>



<p class="wp-block-paragraph"><code>pip install</code>と書く例も多いですが、初心者のうちは<code>python -m pip</code>を使うと、今使っているPythonとpipの対応を揃えやすくなります。</p>



<p class="wp-block-paragraph">入れたパッケージは、コード内で<code>import</code>して使います。import文の基本は<a href="https://it-biz.online/python/py-import/">Pythonのimport文</a>、モジュールとパッケージの違いは<a href="https://it-biz.online/python/import/">モジュール/パッケージ/ライブラリの違い</a>で整理しています。</p>



<h2 class="wp-block-heading"><span id="toc5">パッケージを確認する</span></h2>



<p class="wp-block-paragraph">現在の環境に入っているパッケージを確認したい場合は、次のコマンドを使います。</p>



<pre class="wp-block-code"><code>python -m pip list</code></pre>



<p class="wp-block-paragraph">仮想環境を切り替えると、表示されるパッケージも変わります。ここで『プロジェクトごとに中身が分かれている』ことを確認できます。</p>



<h2 class="wp-block-heading"><span id="toc6">requirements.txtで共有する</span></h2>



<p class="wp-block-paragraph">別のPCや本番環境で同じパッケージを入れたい場合は、<code>requirements.txt</code>を使うことがあります。</p>



<pre class="wp-block-code"><code>python -m pip freeze &gt; requirements.txt
python -m pip install -r requirements.txt</code></pre>



<p class="wp-block-paragraph">1行目は現在の環境に入っているパッケージ一覧を書き出します。2行目は、その一覧をもとにパッケージをまとめてインストールします。</p>



<h2 class="wp-block-heading"><span id="toc7">Excel操作やDjangoへ進むと必要になる</span></h2>



<p class="wp-block-paragraph">外部パッケージを使う記事では、venvとpipの理解が前提になりやすいです。</p>



<ul class="wp-block-list">
  <li><a href="https://it-biz.online/python/openpyxl-abc/">PythonでExcelを操作する方法</a>では、openpyxlのような外部パッケージを使う</li>
  <li><a href="https://it-biz.online/python/django/">Djangoとは？</a>では、Webフレームワークをインストールして使う</li>
  <li>学習用の小さなコードでも、環境を分けておくと後で整理しやすい</li>
</ul>



<h2 class="wp-block-heading"><span id="toc8">初心者がつまずきやすいポイント</span></h2>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>つまずき</th><th>まずこう理解する</th></tr></thead><tbody><tr><td>仮想環境を作らずに全部入れる</td><td>プロジェクトごとに分ける方が壊れにくい</td></tr><tr><td>どのPythonにpipで入ったか分からない</td><td><code>python -m pip</code>で対応を揃える</td></tr><tr><td>activateしないと絶対使えないと思う</td><td>有効化は便利だが、環境内のPythonを直接指定する方法もある</td></tr><tr><td>requirements.txtを仮想環境そのものだと思う</td><td>必要パッケージのリストであり、環境本体ではない</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading"><span id="toc9">よくある疑問</span></h2>



<h3 class="wp-block-heading"><span id="toc10">仮想環境フォルダはGitに入れる？</span></h3>



<p class="wp-block-paragraph">通常、<code>.venv</code>のような仮想環境フォルダそのものはGitへ入れません。代わりに、必要なパッケージを再現するための<code>requirements.txt</code>などを共有します。</p>



<h3 class="wp-block-heading"><span id="toc11">pipとimportは同じ？</span></h3>



<p class="wp-block-paragraph">同じではありません。pipはパッケージを環境へインストールするコマンドで、importはPythonコードの中でモジュールを読み込む文です。先にpipで入れ、コード内でimportして使う、という順番で考えると整理できます。</p>



<h2 class="wp-block-heading"><span id="toc12">コマンドを実行する場所を分けて考える</span></h2>



<p class="wp-block-paragraph">venvやpipでつまずく原因の多くは、Pythonコードの中で実行するものと、ターミナルで実行するものが混ざることです。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>やりたいこと</th><th>実行する場所</th><th>例</th></tr></thead><tbody><tr><td>仮想環境を作る</td><td>ターミナル</td><td><code>python -m venv .venv</code></td></tr><tr><td>パッケージを入れる</td><td>ターミナル</td><td><code>python -m pip install requests</code></td></tr><tr><td>パッケージを使う</td><td>Pythonコード</td><td><code>import requests</code></td></tr><tr><td>プログラムを実行する</td><td>ターミナル</td><td><code>python app.py</code></td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">Pythonの対話モードで<code>python -m pip install ...</code>を入力すると、Pythonの文として解釈されてエラーになります。コマンドはターミナル、importはPythonコード、と分けて考えましょう。</p>



<h2 class="wp-block-heading"><span id="toc13">仮想環境は作り直せる</span></h2>



<p class="wp-block-paragraph">仮想環境は、壊したら終わりというものではありません。必要なパッケージを再現できる情報があれば、削除して作り直せます。</p>



<pre class="wp-block-code"><code># 例: 作り直しの流れ
# 1. .venv フォルダを削除
# 2. 仮想環境を作成
python -m venv .venv

# 3. 有効化後にパッケージを再インストール
python -m pip install -r requirements.txt</code></pre>



<p class="wp-block-paragraph">そのため、仮想環境フォルダそのものを大事に保管するより、必要なパッケージの一覧を残すことが重要です。</p>



<h2 class="wp-block-heading"><span id="toc14">pip installで入るものとimport名が違うことがある</span></h2>



<p class="wp-block-paragraph">パッケージ名とimport名は、いつも同じとは限りません。たとえば、インストール時の名前とコード内で読み込む名前が違うライブラリもあります。</p>



<pre class="wp-block-code"><code>python -m pip install beautifulsoup4

# Pythonコード側
from bs4 import BeautifulSoup</code></pre>



<p class="wp-block-paragraph">エラーが出たときは、pipで入れた名前だけでなく、公式ドキュメントやパッケージのREADMEに書かれているimport例を確認します。</p>



<h2 class="wp-block-heading"><span id="toc15">練習用プロジェクトの流れ</span></h2>



<p class="wp-block-paragraph">最初の練習では、次の順番で1つの小さなフォルダを作ると流れをつかみやすいです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>プロジェクト用フォルダを作る</li>
  <li><code>python -m venv .venv</code>で仮想環境を作る</li>
  <li>仮想環境を有効化する</li>
  <li><code>python -m pip install openpyxl</code>などで必要なパッケージを入れる</li>
  <li>Pythonファイルで<code>import</code>して動かす</li>
  <li><code>python -m pip freeze &gt; requirements.txt</code>で一覧を残す</li>
</ul>



<p class="wp-block-paragraph">この流れを1回経験しておくと、DjangoやExcel操作の記事に進んだときも、環境作成とコードの実行を分けて理解できます。</p>



<h2 class="wp-block-heading"><span id="toc16">公式情報と関連して読みたい記事</span></h2>



<ul class="wp-block-list">
  <li><a href="https://docs.python.org/3/library/venv.html">Python公式ドキュメント: venv</a></li>
  <li><a href="https://packaging.python.org/en/latest/tutorials/installing-packages/">Python Packaging User Guide: Installing Packages</a></li>
  <li><a href="https://it-biz.online/python/install/">Pythonのインストール方法</a></li>
  <li><a href="https://it-biz.online/python/py-import/">Pythonのimport文</a></li>
  <li><a href="https://it-biz.online/python/import/">モジュール/パッケージ/ライブラリの違い</a></li>
</ul>



<h2 class="wp-block-heading"><span id="toc17">まとめ</span></h2>



<p class="wp-block-paragraph">venvとpipは、Pythonで外部ライブラリを使うための土台です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>venvはプロジェクト専用の仮想環境を作る</li>
  <li>pipはパッケージをインストールする</li>
  <li><code>python -m pip</code>を使うとPythonとpipの対応を揃えやすい</li>
  <li>requirements.txtで必要パッケージを再現しやすくする</li>
</ul>



<p class="wp-block-paragraph">この2つを押さえると、Excel操作、Django、API利用など、外部ライブラリを使う記事へ進みやすくなります。</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Python】リスト内包表記とは？for文との違いを初心者向けに解説</title>
		<link>https://it-biz.online/python/python-list-comprehension/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Fri, 15 May 2026 03:11:11 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10923</guid>

					<description><![CDATA[Pythonのリスト内包表記とは何か、for文でappendする書き方との違い、if条件の付け方、読み方、使いどころを初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonのリスト内包表記とは、<strong><span class="marker-under">for文で処理した結果から新しいリストを作る短い書き方</span></strong>です。</p>



<p class="wp-block-paragraph">たとえば、数値の一覧から2倍した一覧を作る、条件に合う値だけを取り出す、といった処理を1行で表せます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>最初は『短く書けるfor文』ではなく、『新しいリストを作る構文』として読むと混乱しにくくなります。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、for文でappendする書き方との違い、基本形、if条件の付け方、読みやすく使うための判断を解説します。</p>




<p class="wp-block-paragraph">次の図では、リスト内包表記を元のリストから要素を流し、条件ゲートと加工ゲートを通して新しいリストを作るラインとして見てください。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/python-listcomp-conveyor.png" alt="元のリストの要素が条件ゲートと加工ゲートを通り新しいリストに入るリスト内包表記のイメージ図"/><figcaption class="wp-element-caption">リスト内包表記は、元のリストを1件ずつ流し、必要なら絞り、加工して新しいリストを作る処理です。</figcaption></figure>



<p class="wp-block-paragraph">次の図では、通常のfor文で行っていた『取り出す・加工する・入れる』が、リスト内包表記の1行へまとまるイメージを見てください。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/python-listcomp-code-bridge.png" alt="for文の取り出す加工する入れるという3つの部品がリスト内包表記の1行にまとまることを示す説明図"/><figcaption class="wp-element-caption">リスト内包表記は、for文の部品を消すのではなく、新しいリストを作る目的に合わせて1行へまとめます。</figcaption></figure>



  <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">まず結論：新しいリストを作るための構文</a></li><li><a href="#toc2" tabindex="0">for文で書く場合</a></li><li><a href="#toc3" tabindex="0">リスト内包表記で書く場合</a></li><li><a href="#toc4" tabindex="0">基本形を分けて読む</a></li><li><a href="#toc5" tabindex="0">ifで条件を付ける</a></li><li><a href="#toc6" tabindex="0">加工と絞り込みを同時に行う</a></li><li><a href="#toc7" tabindex="0">for文とどちらを使うべきか</a></li><li><a href="#toc8" tabindex="0">lambdaやmapとの関係</a></li><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><li><a href="#toc13" tabindex="0">練習するときの題材</a></li><li><a href="#toc14" tabindex="0">実務コードでの使いどころ</a></li><li><a href="#toc15" tabindex="0">公式情報と関連して読みたい記事</a></li><li><a href="#toc16" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：新しいリストを作るための構文</span></h2>



<p class="wp-block-paragraph">Python公式チュートリアルでは、リスト内包表記はリストを作る簡潔な方法として紹介され、別の並びから各要素を加工したリストや条件に合う部分リストを作る用途が説明されています。</p>



<h2 class="wp-block-heading"><span id="toc2">for文で書く場合</span></h2>



<p class="wp-block-paragraph">まずは通常のfor文で、新しいリストを作る例を見ます。</p>



<pre class="wp-block-code"><code>numbers = [1, 2, 3, 4]
squares = []

for number in numbers:
    squares.append(number * number)

print(squares)  # [1, 4, 9, 16]</code></pre>



<p class="wp-block-paragraph">このコードでは、元のリストから1件ずつ取り出し、計算結果を<code>append</code>で新しいリストへ追加しています。リストの基本が曖昧な場合は、<a href="https://it-biz.online/python/python-list/">Pythonのリスト</a>を先に確認してください。</p>



<h2 class="wp-block-heading"><span id="toc3">リスト内包表記で書く場合</span></h2>



<p class="wp-block-paragraph">同じ処理をリスト内包表記で書くと、次のようになります。</p>



<pre class="wp-block-code"><code>numbers = [1, 2, 3, 4]
squares = [number * number for number in numbers]

print(squares)  # [1, 4, 9, 16]</code></pre>



<p class="wp-block-paragraph">読み方は、<code>for number in numbers</code>で1件ずつ取り出し、左側の<code>number * number</code>を新しいリストへ入れる、です。</p>



<h2 class="wp-block-heading"><span id="toc4">基本形を分けて読む</span></h2>



<p class="wp-block-paragraph">リスト内包表記の基本形は、次のように分けると読みやすくなります。</p>



<pre class="wp-block-code"><code>[作る値 for 要素 in 元の並び]</code></pre>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>部分</th><th>役割</th><th>例</th></tr></thead><tbody><tr><td>作る値</td><td>新しいリストに入れる値</td><td><code>number * number</code></td></tr><tr><td>要素</td><td>1件ずつ取り出す変数</td><td><code>number</code></td></tr><tr><td>元の並び</td><td>取り出し元のリストなど</td><td><code>numbers</code></td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">for文そのものの読み方は<a href="https://it-biz.online/python/for-range/">Pythonのfor文</a>、連番を作る処理は<a href="https://it-biz.online/python/range/">range関数</a>と合わせて押さえると整理できます。</p>



<h2 class="wp-block-heading"><span id="toc5">ifで条件を付ける</span></h2>



<p class="wp-block-paragraph">条件に合う要素だけを使いたい場合は、最後に<code>if</code>を付けます。</p>



<pre class="wp-block-code"><code>numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [number for number in numbers if number % 2 == 0]

print(even_numbers)  # [2, 4, 6]</code></pre>



<p class="wp-block-paragraph">この例では、<code>number % 2 == 0</code>を満たす偶数だけを新しいリストに入れています。</p>



<h2 class="wp-block-heading"><span id="toc6">加工と絞り込みを同時に行う</span></h2>



<p class="wp-block-paragraph">リスト内包表記では、値を加工しながら条件で絞ることもできます。</p>



<pre class="wp-block-code"><code>names = [&quot;sato&quot;, &quot;suzuki&quot;, &quot;tanaka&quot;]
upper_s_names = [name.upper() for name in names if name.startswith(&quot;s&quot;)]

print(upper_s_names)  # [&#x27;SATO&#x27;, &#x27;SUZUKI&#x27;]</code></pre>



<p class="wp-block-paragraph">ここでは、<code>s</code>で始まる名前だけを取り出し、<code>upper()</code>で大文字に変換しています。</p>



<h2 class="wp-block-heading"><span id="toc7">for文とどちらを使うべきか</span></h2>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>場面</th><th>おすすめ</th><th>理由</th></tr></thead><tbody><tr><td>単純に新しいリストを作る</td><td>リスト内包表記</td><td>短く、目的が見えやすい</td></tr><tr><td>処理が複数行になる</td><td>通常のfor文</td><td>途中の処理を説明しやすい</td></tr><tr><td>副作用がある処理</td><td>通常のfor文</td><td>printやファイル書き込みは目的が違う</td></tr><tr><td>条件が複雑</td><td>通常のfor文または変数に分ける</td><td>読み間違いを防げる</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">短ければ常に良いわけではありません。読んだ人がすぐ意味を追える範囲で使うのが大切です。</p>



<h2 class="wp-block-heading"><span id="toc8">lambdaやmapとの関係</span></h2>



<p class="wp-block-paragraph">Pythonでは、<code>map</code>や<code>lambda</code>を使って似た処理を書くこともあります。</p>



<pre class="wp-block-code"><code>numbers = [1, 2, 3]
result = list(map(lambda x: x * 2, numbers))</code></pre>



<p class="wp-block-paragraph">ただし、初心者がまず覚えるなら、リスト内包表記の方が『何を取り出して、何を作るか』を読み取りやすい場面が多いです。lambdaの基本は<a href="https://it-biz.online/python/lambda/">Pythonのラムダ関数</a>で扱っています。</p>



<h2 class="wp-block-heading"><span id="toc9">初心者がつまずきやすいポイント</span></h2>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>つまずき</th><th>まずこう理解する</th></tr></thead><tbody><tr><td>左から順番に読もうとして混乱する</td><td>先に<code>for ... in ...</code>を見て、次に左側を見る</td></tr><tr><td>何でも1行にまとめる</td><td>複雑なら通常のfor文へ戻す</td></tr><tr><td>元のリストが変わると思う</td><td>基本は新しいリストを作る</td></tr><tr><td>print目的で使う</td><td>リストを作らない処理には向かない</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading"><span id="toc10">読み方は右から左へ確認する</span></h2>



<p class="wp-block-paragraph">リスト内包表記は、見た目は左から始まりますが、読むときは<code>for</code>の部分から確認すると分かりやすくなります。</p>



<pre class="wp-block-code"><code>result = [name.upper() for name in names if len(name) &gt;= 5]</code></pre>



<p class="wp-block-paragraph">この例は、まず<code>for name in names</code>で名前を1件ずつ取り出し、次に<code>if len(name) &gt;= 5</code>で5文字以上に絞り、最後に<code>name.upper()</code>を新しいリストへ入れる、と読みます。</p>



<h2 class="wp-block-heading"><span id="toc11">ネストした内包表記は最初は避ける</span></h2>



<p class="wp-block-paragraph">リスト内包表記は入れ子にもできますが、初心者のうちは無理に使わない方が読みやすいです。</p>



<pre class="wp-block-code"><code># 読みにくくなりやすい例
pairs = [(x, y) for x in range(3) for y in range(3)]

# 最初はfor文で展開して理解する
pairs = []
for x in range(3):
    for y in range(3):
        pairs.append((x, y))</code></pre>



<p class="wp-block-paragraph">短いコードでも、読む人がすぐに処理の順番を追えなければメリットが薄くなります。二重ループや複雑な条件が出てきたら、通常のfor文へ戻す判断も大切です。</p>



<h2 class="wp-block-heading"><span id="toc12">元のリストは基本的に変えない</span></h2>



<p class="wp-block-paragraph">リスト内包表記は、新しいリストを作るための構文です。元のリストの中身を書き換える処理ではありません。</p>



<pre class="wp-block-code"><code>numbers = [1, 2, 3]
doubled = [number * 2 for number in numbers]

print(numbers)  # [1, 2, 3]
print(doubled)  # [2, 4, 6]</code></pre>



<p class="wp-block-paragraph">元の値を残したまま、加工後の一覧を別に持てるのは大きな利点です。元のリストも変えたい場合は、代入やスライス、通常のfor文など、別の書き方を検討します。</p>



<h2 class="wp-block-heading"><span id="toc13">練習するときの題材</span></h2>



<p class="wp-block-paragraph">リスト内包表記は、単純な変換と絞り込みから練習すると理解しやすいです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>数値リストを2倍した新しいリストを作る</li>
  <li>文字列リストから3文字以上だけを取り出す</li>
  <li>名前の一覧をすべて大文字にする</li>
  <li>1から10までの偶数だけをリストにする</li>
</ul>



<p class="wp-block-paragraph">いきなり複雑な処理に使うより、for文で書ける処理をリスト内包表記へ置き換える練習をすると、構文の対応関係が見えやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc14">実務コードでの使いどころ</span></h2>



<p class="wp-block-paragraph">リスト内包表記は、データの一覧を画面表示用に加工したり、APIから受け取ったリストの一部だけを取り出したり、ファイル名の一覧を整形したりする場面でよく使われます。どれも共通しているのは、『元の並びから新しいリストを作る』という目的がはっきりしていることです。</p>



<p class="wp-block-paragraph">逆に、途中でログを出す、複数の変数を更新する、例外処理を細かく入れる、といった処理は通常のfor文の方が向いています。リスト内包表記は、処理の目的が1つに絞れるときに使うと読みやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc15">公式情報と関連して読みたい記事</span></h2>



<ul class="wp-block-list">
  <li><a href="https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions">Python公式チュートリアル: List Comprehensions</a></li>
  <li><a href="https://it-biz.online/python/python-list/">Pythonのリスト</a></li>
  <li><a href="https://it-biz.online/python/for-range/">Pythonのfor文</a></li>
  <li><a href="https://it-biz.online/python/range/">range関数</a></li>
  <li><a href="https://it-biz.online/python/lambda/">Pythonのラムダ関数</a></li>
</ul>



<h2 class="wp-block-heading"><span id="toc16">まとめ</span></h2>



<p class="wp-block-paragraph">リスト内包表記は、for文で処理した結果から新しいリストを作るための構文です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>基本形は<code>[作る値 for 要素 in 元の並び]</code></li>
  <li>条件で絞るなら最後に<code>if 条件</code>を付ける</li>
  <li>複雑な処理は通常のfor文の方が読みやすい</li>
  <li>元のリストを直接変えるのではなく、新しいリストを作る</li>
</ul>



<p class="wp-block-paragraph">リスト内包表記を読めるようになると、Pythonらしいリスト処理のコードがかなり追いやすくなります。</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Python】f-stringとは？文字列に変数を埋め込む書き方を初心者向けに解説</title>
		<link>https://it-biz.online/python/python-f-string/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Fri, 15 May 2026 03:10:44 +0000</pubDate>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10920</guid>

					<description><![CDATA[Pythonのf-stringとは何か、変数や式を文字列へ埋め込む書き方、小数点や桁区切りの指定、formatとの違い、注意点を解説します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonのf-stringとは、<strong><span class="marker-under">文字列の中に変数や式を埋め込むための書き方</span></strong>です。</p>



<p class="wp-block-paragraph">文字列を<code>+</code>でつなぐよりも、何を表示したいのかを自然な順番で書けます。<code>print</code>で結果を見せる練習や、ログ、メッセージ作成でよく使います。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>f-stringは『fを付けた文字列の中で、{} の中だけPythonの式として読む』と考えると整理しやすいです。</p>
  </div>
</div>



<p class="wp-block-paragraph">この記事では、f-stringの基本、変数や式の埋め込み、小数点の表示、<code>format</code>との違い、初心者がつまずきやすい点を解説します。</p>




<p class="wp-block-paragraph">次の図では、f-stringを文章テンプレートの穴へ変数を差し込むイメージとして見てください。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/python-f-string-template.png" alt="f-stringの波括弧が文章テンプレートの穴になり変数nameとageが差し込まれて文章になることを示す説明図"/><figcaption class="wp-element-caption">f-stringは、文章の中にある波括弧へ変数や式の結果を差し込む書き方です。</figcaption></figure>



<p class="wp-block-paragraph">次の図では、数値がf-stringの書式指定を通って、画面に出すための読みやすい文字列へ整う流れを見てください。</p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/python-f-string-formatting.png" alt="数値がf-stringの書式指定を通って桁区切りや小数点を整えた表示用文字列になる流れを示すイメージ図"/><figcaption class="wp-element-caption">f-stringは値を埋め込むだけでなく、金額や割合のように表示用の形へ整える場面でも使えます。</figcaption></figure>



  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-5" checked><label class="toc-title" for="toc-checkbox-5">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まず結論：f"...{変数}..."で値を埋め込む</a></li><li><a href="#toc2" tabindex="0">f-stringの基本形</a></li><li><a href="#toc3" tabindex="0">文字列連結より読みやすい</a></li><li><a href="#toc4" tabindex="0">式も書ける</a></li><li><a href="#toc5" tabindex="0">小数点や桁区切りを指定する</a></li><li><a href="#toc6" tabindex="0">formatメソッドとの違い</a></li><li><a href="#toc7" tabindex="0">デバッグ表示にも使える</a></li><li><a href="#toc8" tabindex="0">初心者がつまずきやすいポイント</a></li><li><a href="#toc9" tabindex="0">辞書やリストの値も埋め込める</a></li><li><a href="#toc10" tabindex="0">複数行の文字列で使う</a></li><li><a href="#toc11" tabindex="0">format指定は少しずつ覚える</a></li><li><a href="#toc12" tabindex="0">練習するときのおすすめ例</a></li><li><a href="#toc13" tabindex="0">よくある疑問</a><ol><li><a href="#toc14" tabindex="0">f-stringはprint専用？</a></li><li><a href="#toc15" tabindex="0">波括弧そのものを表示したいときは？</a></li><li><a href="#toc16" tabindex="0">古いformatは覚えなくてよい？</a></li></ol></li><li><a href="#toc17" tabindex="0">公式情報と関連して読みたい記事</a></li><li><a href="#toc18" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">まず結論：f"...{変数}..."で値を埋め込む</span></h2>



<p class="wp-block-paragraph">Python公式チュートリアルでは、f-stringは文字列の前に<code>f</code>または<code>F</code>を付け、波括弧の中にPython式を書ける文字列リテラルとして説明されています。</p>



<h2 class="wp-block-heading"><span id="toc2">f-stringの基本形</span></h2>



<p class="wp-block-paragraph">基本形は、文字列の前に<code>f</code>を付け、埋め込みたい変数を<code>{}</code>で囲みます。</p>



<pre class="wp-block-code"><code>name = &quot;Sato&quot;
age = 25

message = f&quot;{name}さんは{age}歳です&quot;
print(message)</code></pre>



<p class="wp-block-paragraph">このコードでは、<code>{name}</code>が<code>Sato</code>に、<code>{age}</code>が<code>25</code>に置き換わります。文字列そのものの基本は<a href="https://it-biz.online/python/string/">Pythonの文字列操作</a>も参考になります。</p>



<h2 class="wp-block-heading"><span id="toc3">文字列連結より読みやすい</span></h2>



<p class="wp-block-paragraph">同じ内容を<code>+</code>でつなぐと、型変換や記号が増えて読みにくくなりがちです。</p>



<pre class="wp-block-code"><code>name = &quot;Sato&quot;
age = 25

print(name + &quot;さんは&quot; + str(age) + &quot;歳です&quot;)
print(f&quot;{name}さんは{age}歳です&quot;)</code></pre>



<p class="wp-block-paragraph">f-stringでは、数値の<code>age</code>も表示用の文字列として自然に埋め込めます。型変換の考え方は<a href="https://it-biz.online/python/int-float-str/">int() float() str()</a>の記事で詳しく扱っています。</p>



<h2 class="wp-block-heading"><span id="toc4">式も書ける</span></h2>



<p class="wp-block-paragraph">波括弧の中には、変数だけでなく簡単な式も書けます。</p>



<pre class="wp-block-code"><code>price = 1200
count = 3

print(f&quot;合計は{price * count}円です&quot;)</code></pre>



<p class="wp-block-paragraph">ただし、長い計算や複雑な条件をf-stringの中に詰め込みすぎると読みにくくなります。複雑な処理は先に変数へ入れてから埋め込む方が安全です。</p>



<h2 class="wp-block-heading"><span id="toc5">小数点や桁区切りを指定する</span></h2>



<p class="wp-block-paragraph">f-stringでは、<code>:</code>の後に書式指定を書くことで、小数点や桁区切りを調整できます。</p>



<pre class="wp-block-code"><code>rate = 0.12345
amount = 1234567

print(f&quot;割合: {rate:.2%}&quot;)
print(f&quot;金額: {amount:,}円&quot;)</code></pre>



<p class="wp-block-paragraph"><code>{rate:.2%}</code>は百分率で小数第2位まで、<code>{amount:,}</code>は3桁区切りで表示します。より細かい書式は、<a href="https://it-biz.online/python/format/">formatメソッド</a>と同じ考え方で理解できます。</p>



<h2 class="wp-block-heading"><span id="toc6">formatメソッドとの違い</span></h2>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>書き方</th><th>例</th><th>初心者向けの見方</th></tr></thead><tbody><tr><td>f-string</td><td><code>f"{name}さん"</code></td><td>文字列の中で変数を直接読む</td></tr><tr><td>format</td><td><code>"{}さん".format(name)</code></td><td>後ろから値を差し込む</td></tr><tr><td>文字列連結</td><td><code>name + "さん"</code></td><td>短い場合だけなら読める</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">新しく書くコードでは、単純な埋め込みならf-stringが読みやすい場面が多いです。既存コードでは<code>format</code>も出てくるため、どちらも読めるようにしておくと安心です。</p>



<h2 class="wp-block-heading"><span id="toc7">デバッグ表示にも使える</span></h2>



<p class="wp-block-paragraph">変数名と値を一緒に見たいときにもf-stringは便利です。</p>



<pre class="wp-block-code"><code>score = 82
print(f&quot;score={score}&quot;)</code></pre>



<p class="wp-block-paragraph">練習中は、処理の途中で変数がどう変わったかを<code>print</code>で確認する場面が多くあります。<a href="https://it-biz.online/python/print/">print関数</a>とf-stringを組み合わせると、確認用の表示が読みやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc8">初心者がつまずきやすいポイント</span></h2>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>つまずき</th><th>まずこう理解する</th></tr></thead><tbody><tr><td>先頭の<code>f</code>を忘れる</td><td><code>{name}</code>がそのまま表示される</td></tr><tr><td>波括弧の外で式を書こうとする</td><td>Python式として読まれるのは<code>{}</code>の中</td></tr><tr><td>複雑な式を詰め込む</td><td>長い処理は先に変数へ入れる</td></tr><tr><td>引用符が混ざる</td><td>外側と内側の引用符を分ける</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading"><span id="toc9">辞書やリストの値も埋め込める</span></h2>



<p class="wp-block-paragraph">f-stringの<code>{}</code>の中には式を書けるため、辞書やリストから取り出した値も埋め込めます。</p>



<pre class="wp-block-code"><code>user = {&quot;name&quot;: &quot;Sato&quot;, &quot;score&quot;: 82}

print(f&quot;{user[&#x27;name&#x27;]}さんの点数は{user[&#x27;score&#x27;]}点です&quot;)</code></pre>



<p class="wp-block-paragraph">ただし、引用符が増えると読みにくくなります。複雑に見える場合は、先に変数へ取り出してからf-stringに入れると安全です。</p>



<pre class="wp-block-code"><code>name = user[&quot;name&quot;]
score = user[&quot;score&quot;]

print(f&quot;{name}さんの点数は{score}点です&quot;)</code></pre>



<h2 class="wp-block-heading"><span id="toc10">複数行の文字列で使う</span></h2>



<p class="wp-block-paragraph">長いメッセージを作るときは、複数行のf-stringを使うこともあります。</p>



<pre class="wp-block-code"><code>name = &quot;Sato&quot;
score = 82

message = f&quot;&quot;&quot;
{name}さん
点数: {score}
判定: {&#x27;合格&#x27; if score &gt;= 60 else &#x27;不合格&#x27;}
&quot;&quot;&quot;

print(message)</code></pre>



<p class="wp-block-paragraph">ただし、条件式まで入れると読みにくくなることがあります。表示用の文章を作るだけなら便利ですが、処理の本体をf-stringの中へ押し込まないようにしましょう。</p>



<h2 class="wp-block-heading"><span id="toc11">format指定は少しずつ覚える</span></h2>



<p class="wp-block-paragraph">f-stringの書式指定は便利ですが、最初からすべて覚える必要はありません。まずは小数点、桁区切り、幅の指定をよく使います。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>目的</th><th>書き方</th><th>例</th></tr></thead><tbody><tr><td>小数第2位まで</td><td><code>{value:.2f}</code></td><td><code>3.14</code></td></tr><tr><td>パーセント表示</td><td><code>{rate:.1%}</code></td><td><code>12.3%</code></td></tr><tr><td>3桁区切り</td><td><code>{amount:,}</code></td><td><code>1,234</code></td></tr><tr><td>右寄せ</td><td><code>{name:&gt;10}</code></td><td>幅をそろえる</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading"><span id="toc12">練習するときのおすすめ例</span></h2>



<p class="wp-block-paragraph">f-stringは、変数の値を見やすく表示する練習に向いています。計算そのものより、読みやすい出力を作る意識で試すと身につきます。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>名前と年齢を1文で表示する</li>
  <li>税込価格を計算して小数なしで表示する</li>
  <li>点数と合否をメッセージにする</li>
  <li>金額を3桁区切りで表示する</li>
</ul>



<h2 class="wp-block-heading"><span id="toc13">よくある疑問</span></h2>



<h3 class="wp-block-heading"><span id="toc14">f-stringはprint専用？</span></h3>



<p class="wp-block-paragraph">print専用ではありません。f-stringは文字列を作る書き方なので、変数に入れる、ファイルへ書く、ログに渡す、関数の戻り値にするなど、文字列が必要な場所で使えます。</p>



<pre class="wp-block-code"><code>def build_message(name, score):
    return f&quot;{name}さんの点数は{score}点です&quot;</code></pre>



<h3 class="wp-block-heading"><span id="toc15">波括弧そのものを表示したいときは？</span></h3>



<p class="wp-block-paragraph">f-stringで波括弧そのものを表示したい場合は、波括弧を二重にします。<code>{{</code>と<code>}}</code>を書くと、表示結果では1つの波括弧になります。</p>



<pre class="wp-block-code"><code>name = &quot;Sato&quot;
print(f&quot;{{name}} の値は {name} です&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc16">古いformatは覚えなくてよい？</span></h3>



<p class="wp-block-paragraph">新しく短いコードを書くならf-stringで十分な場面が多いです。ただし、既存コードや教材では<code>format</code>もまだ出てきます。完全に置き換えるというより、f-stringを中心にしつつ、formatも読める状態にしておくのが現実的です。</p>



<p class="wp-block-paragraph">特にチーム開発では、既存コードの書き方に合わせることもあります。f-stringを使えるようになったうえで、formatや文字列連結を見ても意味が分かる状態にしておくと、古いコードと新しいコードの両方を読みやすくなります。検索して見つけたサンプルコードの理解にも役立ちます。</p>



<h2 class="wp-block-heading"><span id="toc17">公式情報と関連して読みたい記事</span></h2>



<ul class="wp-block-list">
  <li><a href="https://docs.python.org/3/tutorial/inputoutput.html#formatted-string-literals">Python公式チュートリアル: Formatted String Literals</a></li>
  <li><a href="https://it-biz.online/python/string/">Pythonの文字列操作</a></li>
  <li><a href="https://it-biz.online/python/print/">Pythonのprint関数</a></li>
  <li><a href="https://it-biz.online/python/format/">Pythonのformatメソッド</a></li>
  <li><a href="https://it-biz.online/python/int-float-str/">int() float() str() データ型変換</a></li>
</ul>



<h2 class="wp-block-heading"><span id="toc18">まとめ</span></h2>



<p class="wp-block-paragraph">f-stringは、文字列の中に変数や式を埋め込むための読みやすい書き方です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>文字列の前に<code>f</code>を付ける</li>
  <li><code>{}</code>の中に変数や式を書く</li>
  <li>小数点や桁区切りも指定できる</li>
  <li>複雑な処理は先に変数へ入れる</li>
</ul>



<p class="wp-block-paragraph">f-stringを使えるようになると、出力やメッセージ作成のコードがかなりすっきりします。</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Django】テンプレートの仕組みと基本を３分で解説</title>
		<link>https://it-biz.online/python/template/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Mon, 10 Jul 2023 09:31:57 +0000</pubDate>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=8138</guid>

					<description><![CDATA[Djangoのテンプレート（template）は、Webアプリケーションで生成されるHTMLの骨格を作成し、その中に動的なデータを埋め込むための仕組みです。 このテンプレートシステムを理解することで、Pythonのコード [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://it-biz.online/python/django/">Django</a>のテンプレート（template）は、Webアプリケーションで生成される<a href="https://it-biz.online/web-design/html-basic/">HTML</a>の骨格を作成し、その中に動的なデータを埋め込むための仕組みです。</p>



<p class="wp-block-paragraph">このテンプレートシステムを理解することで、<a href="https://it-biz.online/python/python-abc/">Python</a>のコードとHTMLの間でデータを効率よくやり取りし、見栄えの良いウェブページを容易に作成することが可能となります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">このページでは、Djangoのテンプレートについて、初心者向けに１からわかりやすく整理して解説します。</p>
</div></div>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label fab-edit"><span class="tab-caption-box-label-text block-box-label-text box-label-text">このページで学べる内容</span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title"></div>
<ul class="wp-block-list">
<li>Djangoのテンプレートとは？</li>



<li>Djangoテンプレートの基本</li>



<li>Djangoテンプレートタグとフィルター</li>



<li>Djangoテンプレートでの静的ファイルの扱い</li>



<li>Djangoテンプレートの継承</li>
</ul>
</div>
</div></div>



<p class="wp-block-paragraph">Djangoを用いたWeb開発を行いたい人であれば、<strong><span class="marker-under">知らないと恥ずかしい超・基本知識の１つです。</span></strong>是非最後までご覧ください。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/python/rule/">Pythonの基本的な書き方・構文ルール</a></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-7" checked><label class="toc-title" for="toc-checkbox-7">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Django「テンプレート」とは何か？</a></li><li><a href="#toc2" tabindex="0">Djangoテンプレートの基本</a><ol><li><a href="#toc3" tabindex="0">Django：テンプレート変数</a></li><li><a href="#toc4" tabindex="0">Django：テンプレートタグ</a></li></ol></li><li><a href="#toc5" tabindex="0">Djangoテンプレートの作成と使用方法</a><ol><li><a href="#toc6" tabindex="0">テンプレート（HTMLファイル）の作成</a></li><li><a href="#toc7" tabindex="0">テンプレートの使用</a></li></ol></li><li><a href="#toc8" tabindex="0">Django：テンプレート（template）のまとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Django「テンプレート」とは何か？</span></h2>



<p class="wp-block-paragraph">Djangoのテンプレートとは、Webアプリケーションの画面の骨格を表すHTMLファイルのことを指します。Djangoでは、このテンプレートファイルに<strong><span class="marker-under">Pythonのコードから動的に値を受け渡すことで、さまざまな画面を表示させることができます。</span></strong></p>



<figure class="wp-block-image aligncenter size-large"><img fetchpriority="high" decoding="async" width="1024" height="539" src="https://it-biz.online/wp-content/uploads/2023/07/image-4-1024x539.png" alt="Django テンプレート" class="wp-image-8141" srcset="https://it-biz.online/wp-content/uploads/2023/07/image-4-1024x539.png 1024w, https://it-biz.online/wp-content/uploads/2023/07/image-4-300x158.png 300w, https://it-biz.online/wp-content/uploads/2023/07/image-4-500x263.png 500w, https://it-biz.online/wp-content/uploads/2023/07/image-4-768x405.png 768w, https://it-biz.online/wp-content/uploads/2023/07/image-4-800x421.png 800w, https://it-biz.online/wp-content/uploads/2023/07/image-4.png 1029w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">図1：Django テンプレート</figcaption></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">テンプレートを使用することで、Webページの見た目（HTML）とロジック（Pythonコード）を明確に分けることができ、コードの整理整頓、保守、再利用を容易にし、チームでの開発をスムーズにすることができます。</p>
</div></div>



<p class="wp-block-paragraph">それでは、早速テンプレートの基本的な作成方法と、その利用方法を解説していきます。</p>



<h2 class="wp-block-heading"><span id="toc2">Djangoテンプレートの基本</span></h2>



<p class="wp-block-paragraph">DjangoのテンプレートはHTMLファイルの形で保存され、主に2つの部分から成り立ちます。</p>



<ol class="wp-block-list">
<li>HTML</li>



<li>テンプレートタグ or テンプレート変数</li>
</ol>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="714" height="483" src="https://it-biz.online/wp-content/uploads/2023/07/image-6.png" alt="" class="wp-image-8145" srcset="https://it-biz.online/wp-content/uploads/2023/07/image-6.png 714w, https://it-biz.online/wp-content/uploads/2023/07/image-6-300x203.png 300w, https://it-biz.online/wp-content/uploads/2023/07/image-6-500x338.png 500w" sizes="(max-width: 714px) 100vw, 714px" /><figcaption class="wp-element-caption">図2：テンプレート変数</figcaption></figure>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/web-design/html-rule/">HTMLファイルの書き方・作り方</a></p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">骨格となるHTMLファイルに、<a href="https://it-biz.online/it-skills/variable/">変数</a>を埋め込んでおき、その変数にPythonから値を渡して１つの画面を作成するようなイメージ。</p>
</div></div>



<p class="wp-block-paragraph">このようにテンプレートを利用して、各場面に応じて修正が必要な部分だけをPythonから渡してあげることで、様々な画面を作成できる仕組みがテンプレートです。</p>



<p class="wp-block-paragraph">Djangoのテンプレート変数とテンプレートタグの使い方を解説します。</p>



<h3 class="wp-block-heading"><span id="toc3">Django：テンプレート変数</span></h3>



<p class="wp-block-paragraph"><strong>テンプレート変数</strong>は <code><span class="bold-blue">{{ variable_name }}</span></code> の形でHTMLファイル内に記述します。ここには、Pythonから受け取った値（文字列、数値、リスト、オブジェクトなど）が挿入されます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;p>Hello, {{ name }}!&lt;/p></pre>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/web-design/paragraph/">HTML：pタグ</a></p>



<p class="wp-block-paragraph">ここでの <code>name</code> はテンプレート変数です。ここに Python コードから値が渡されれば、その値が表示さる仕組み。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">例えば、<code>name</code> に "John" という文字列が渡されれば、生成されるHTMLは以下のようになります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;p>Hello, John!&lt;/p></pre>
</div></div>



<h3 class="wp-block-heading"><span id="toc4">Django：テンプレートタグ</span></h3>



<p class="wp-block-paragraph">一方、<strong>テンプレートタグ</strong>は <code><span class="bold-blue">{% tag %}</span></code> の形でテンプレートに記述され、より複雑なロジックや制御フローをHTMLに組み込むことができます。</p>



<p class="wp-block-paragraph">テンプレートタグにはさまざまな種類があり、条件分岐（<code>{% if %}</code>、<code>{% else %}</code>）、ループ（<code>{% for %}</code>）、テンプレートの継承やインクルード（<code>{% extends %}</code>、<code>{% include %}</code>）など、多くの操作を行うことができます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">例えば、以下のコードでは、<code>item_list</code> の各要素に対してループを行い、リストの要素をHTMLに挿入しています。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;ul>
{% for item in item_list %}
    &lt;li>{{ item }}&lt;/li>
{% endfor %}
&lt;/ul></pre>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/web-design/list/">liタグ</a> / <a href="https://it-biz.online/python/python-list/">Pythonのリスト</a></p>



<p class="wp-block-paragraph"><code>item_list</code> はPythonから渡されたリストで、その各要素が <code>item</code> としてHTMLに埋め込まれます。</p>



<p class="wp-block-paragraph">例えば、<code>item_list</code> に <code>["Apple", "Banana", "Cherry"]</code> というリストが渡された場合、生成されるHTMLは以下のようになります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;ul>
    &lt;li>Apple&lt;/li>
    &lt;li>Banana&lt;/li>
    &lt;li>Cherry&lt;/li>
&lt;/ul></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">このように、Djangoテンプレートタグを使うと、HTMLの生成をPythonのコードで制御することができます。</p>
</div></div>



<p class="wp-block-paragraph">Djangoのテンプレートタグは多種多様。ここで、最も一般的に使用されるタグをいくつか取り上げ、その機能と使い方を表形式で整理しておきます。</p>



<figure class="wp-block-table aligncenter"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>テンプレートタグ</th><th>説明</th><th>使用例</th></tr></thead><tbody><tr><td><code>{% for %}</code>、<code>{% endfor %}</code></td><td>リストの各要素に対してループを行う。</td><td><code>{% for item in item_list %}&lt;li&gt;{{ item }}&lt;/li&gt;{% endfor %}</code></td></tr><tr><td><code>{% if %}</code>、<code>{% endif %}</code></td><td>条件分岐を行う。</td><td><code>{% if user.is_authenticated %}Hello, {{ user.username }}.{% endif %}</code></td></tr><tr><td><code>{% else %}</code></td><td><code>if</code> タグまたは <code>for</code> タグと一緒に使用して、条件が満たされなかった場合の動作を定義する。</td><td><code>{% if user.is_authenticated %}Hello, {{ user.username }}.{% else %}Please log in.{% endif %}</code></td></tr><tr><td><code>{% elif %}</code></td><td><code>if</code> タグと一緒に使用して、複数の条件をチェックする。</td><td><code>{% if user.is_admin %}Admin{% elif user.is_staff %}Staff{% else %}User{% endif %}</code></td></tr><tr><td><code>{% empty %}</code></td><td><code>for</code> タグと一緒に使用して、リストが空の場合の動作を定義する。</td><td><code>{% for item in item_list %}&lt;li&gt;{{ item }}&lt;/li&gt;{% empty %}&lt;li&gt;No items.&lt;/li&gt;{% endfor %}</code></td></tr><tr><td><code>{% extends %}</code></td><td>他のテンプレートを継承する。</td><td><code>{% extends "base.html" %}</code></td></tr><tr><td><code>{% block %}</code>、<code>{% endblock %}</code></td><td><code>extends</code> タグで継承されたテンプレートで上書き可能な領域を定義する。</td><td><code>{% block content %}This is the content.{% endblock %}</code></td></tr><tr><td><code>{% include %}</code></td><td>他のテンプレートを現在の位置に挿入する。</td><td><code>{% include "header.html" %}</code></td></tr><tr><td><code>{% static %}</code></td><td>静的ファイルへのURLを生成する。</td><td><code>&lt;img src="{% static "images/logo.png" %}"&gt;</code></td></tr><tr><td><code>{% url %}</code></td><td>DjangoのURLパターン名からURLを動的に生成する</td><td><code>&lt;a href="{% url 'homepage' %}"&gt;Home&lt;/a&gt;</code></td></tr><tr><td><code>{% csrf_token %}</code></td><td>CSRF保護のためのトークンを出力する。通常はPOSTフォーム内で使用する。</td><td><code>&lt;a href="{% url 'homepage' %}"&gt;Home&lt;/a&gt;</code></td></tr><tr><td><code>{% load %}</code></td><td>カスタムテンプレートタグやフィルタを読み込む。</td><td><code>{% load custom_tags %}</code></td></tr></tbody></table></div></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">次の章では、Djangoテンプレートの作成方法について詳しく解説します。</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc5">Djangoテンプレートの作成と使用方法</span></h2>



<p class="wp-block-paragraph">上記の基本知識を踏まえ、早速Djangoテンプレートの作成と使用方法を実際に見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc6">テンプレート（HTMLファイル）の作成</span></h3>



<p class="wp-block-paragraph">テンプレートは基本的にはHTMLファイルであり、Djangoプロジェクト内のアプリケーションフォルダにある<code>templates</code>ディレクトリに保存されます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">例えば、<code>myapp</code>という名前のアプリケーションがある場合、テンプレートは<code><span class="bold-blue">myapp/templates/</span></code>ディレクトリに配置します。</p>
</div></div>



<p class="wp-block-paragraph">↓のような簡単なテンプレートを作成してみます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!-- myapp/templates/hello.html -->

&lt;!DOCTYPE html>
&lt;html>
&lt;head>
    &lt;title>Hello Django&lt;/title>
&lt;/head>
&lt;body>
    &lt;h1>Hello, {{ name }}!&lt;/h1>
&lt;/body>
&lt;/html></pre>



<p class="wp-block-paragraph">このテンプレートでは、<code>{{ name }}</code>というテンプレート変数を使用しており、この部分は後でPythonコードから受け取った値に置き換えられます。</p>



<h3 class="wp-block-heading"><span id="toc7">テンプレートの使用</span></h3>



<p class="wp-block-paragraph">Djangoのビューでテンプレートを使用するには、<strong><span class="marker-under"><a href="https://it-biz.online/python/render/"><code>render</code>関数</a></span></strong>を使います。この関数は、指定したテンプレートを使用してHTTPレスポンスを生成します。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/python/def/">Pythonの関数とは？</a></p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">次のコードは、上記のテンプレートを使って"Hello, Django!"と表示するビューの例です。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># myapp/views.py

from django.shortcuts import render

def hello(request):
    return render(request, 'hello.html', {'name': 'Django'})</pre>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/python/py-import/">import文</a> / <a href="https://it-biz.online/python/views/">views.py（ビューとは？）</a></p>



<p class="wp-block-paragraph">このビューでは、<code>render</code>関数を使って<code>hello.html</code>テンプレートをレンダリングしています。3つ目の引数<code>{'name': 'Django'}</code>は、テンプレートに渡すコンテキストとなり、この例ではテンプレート変数<code>{{ name }}</code>が'Django'に置き換えられます。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p class="wp-block-paragraph">render関数の詳しい使い方や利用する際の注意点は以下の記事をご覧ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-ビズドットオンライン wp-block-embed-ビズドットオンライン"><div class="wp-block-embed__wrapper">

<a href="https://it-biz.online/python/render/" title="【Django】render関数の使い方をわかりやすく３分で解説" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://it-biz.online/wp-content/uploads/2023/07/render-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://it-biz.online/wp-content/uploads/2023/07/render-320x180.png 320w, https://it-biz.online/wp-content/uploads/2023/07/render-240x135.png 240w, https://it-biz.online/wp-content/uploads/2023/07/render-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Django】render関数の使い方をわかりやすく３分で解説</div><div class="blogcard-snippet internal-blogcard-snippet">【初心者向け】Djangoのrender関数の使い方を、基本的な概念から具体的なコード例までわかりやすく解説。初心者でも理解できるよう、用途や構文、利用時の注意点についても３分間で効率的にご説明。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://it-biz.online" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">it-biz.online</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2023.07.10</div></div></div></div></a>
</div></figure>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">以上がDjangoテンプレートの基本的な作成と使用方法です。</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc8">Django：テンプレート（template）のまとめ</span></h2>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center is-style-cross-line has-box-style wp-block-paragraph"><strong>Djangoテンプレート</strong></p>



<ol class="wp-block-list">
<li>DjangoのテンプレートはWebアプリケーションの画面（ビュー）の骨格を形成するHTMLファイル。</li>



<li>データを動的に埋め込むことで、同じテンプレートから異なる画面を作成可能。</li>



<li>HTMLとPythonコードを分離し、保守性と再利用性を向上させることが可能。</li>
</ol>



<p class="has-text-align-center is-style-cross-line has-box-style wp-block-paragraph"><strong>テンプレート変数</strong></p>



<ol class="wp-block-list">
<li>テンプレート変数はPythonから受け取ったデータをHTMLに埋め込むためのプレースホルダ。</li>



<li>テンプレート変数は <code>{{ variable_name }}</code> の形式で記述される。</li>



<li>テンプレート変数はPythonの値（文字列、数値、リスト、オブジェクトなど）をその場所に表示。</li>
</ol>



<p class="has-text-align-center is-style-cross-line has-box-style wp-block-paragraph"><strong>テンプレートタグ</strong></p>



<ol class="wp-block-list">
<li>テンプレートタグはHTMLテンプレートに制御構造を追加するための構文。</li>



<li>テンプレートタグは <code>{% tag %}</code> の形式で記述される。</li>



<li>ループ（<code>for</code>）、条件分岐（<code>if</code>）、テンプレートの継承やインクルード（<code>extends</code>、<code>include</code>）など、さまざまな制御構造を表現可能。</li>
</ol>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!DOCTYPE html>
&lt;html>
&lt;head>
    &lt;title>{{ title }}&lt;/title>
    &lt;link rel="stylesheet" href="{% static 'styles.css' %}">
&lt;/head>
&lt;body>
    &lt;header>
        &lt;h1>{{ header }}&lt;/h1>
    &lt;/header>
    
    &lt;main>
        &lt;h2>Welcome, {{ username }}!&lt;/h2>
        &lt;p>Here are some of your favorite fruits:&lt;/p>
        &lt;ul>
        {% for fruit in favorite_fruits %}
            &lt;li>{{ fruit }}&lt;/li>
        {% empty %}
            &lt;li>No favorite fruits found.&lt;/li>
        {% endfor %}
        &lt;/ul>
    &lt;/main>
    
    &lt;footer>
        {% include 'footer.html' %}
    &lt;/footer>
&lt;/body>
&lt;/html></pre>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/web-design/main/">mainタグ</a></p>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">初めてPython/Djangoを勉強するのは結構難しいですよね。</p>



<p class="wp-block-paragraph">でもその悩みを抱えているのは一人じゃありません。全てのPython使いが同じ道を進んできました。</p>
</div></div>



<p class="wp-block-paragraph">Pythonをはじめとするプログラミングスキルを武器に、<strong><span class="marker-under">時間と場所に捉われない自由な生き方</span></strong>を目指してみませんか？今すぐ行動したい方は以下の記事をチェック！</p>



<div class="wp-block-cocoon-blocks-button-1 aligncenter button-block"><a href="https://it-biz.online/lifehack/programming/" class="btn btn-m btn-circle btn-shine has-text-color has-background has-cocoon-black-color has-orange-background-color" target="_self">【無料】プログラミングスクールの探し方 ></a></div>



<p class="has-text-align-center wp-block-paragraph"><span class="badge-green">読者料典</span>　<a href="https://it-biz.online/python/python-roadmap/">Python入門：学習カリキュラム</a>　←こちらから！</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Django】テンプレートの継承（extends/block）を３分で解説</title>
		<link>https://it-biz.online/python/template-inheritance/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Tue, 11 Jul 2023 06:51:05 +0000</pubDate>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=8166</guid>

					<description><![CDATA[このページでは、Djangoのテンプレートシステムにおける１つの核心的な概念「テンプレートの継承」について詳しく説明します。 参考　Djangoのテンプレートとは？ テンプレートの継承とは、一言で言うと、既存のテンプレー [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">このページでは、<a href="https://it-biz.online/python/django/">Django</a>のテンプレートシステムにおける１つの核心的な概念「テンプレートの継承」について詳しく説明します。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/python/template/">Djangoのテンプレートとは？</a></p>



<p class="wp-block-paragraph">テンプレートの継承とは、一言で言うと、<strong>既存のテンプレート（通常はベースとなるテンプレート）から特定の部分を再利用し、その上で新たな要素を追加したり、既存の要素をオーバーライド（上書き）したりすることを可能にする機能</strong>です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="876" height="365" src="https://it-biz.online/wp-content/uploads/2023/07/image-9.png" alt="テンプレートの継承" class="wp-image-8169" srcset="https://it-biz.online/wp-content/uploads/2023/07/image-9.png 876w, https://it-biz.online/wp-content/uploads/2023/07/image-9-300x125.png 300w, https://it-biz.online/wp-content/uploads/2023/07/image-9-500x208.png 500w, https://it-biz.online/wp-content/uploads/2023/07/image-9-768x320.png 768w, https://it-biz.online/wp-content/uploads/2023/07/image-9-800x333.png 800w" sizes="(max-width: 876px) 100vw, 876px" /><figcaption class="wp-element-caption">図1：テンプレートの継承</figcaption></figure>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">このページでは、テンプレートの継承とは何か？そのメリットと使用方法、さらには実践的な例とベストプラクティスを含む具体的な応用例を紹介します。</p>
</div></div>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label fab-edit"><span class="tab-caption-box-label-text block-box-label-text box-label-text">このページで学べる内容</span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title"></div>
<ul class="wp-block-list">
<li>テンプレートの継承とは</li>



<li>テンプレートの継承の使い方</li>



<li>テンプレートの継承の実践的な例</li>



<li>テンプレートの継承と再利用のベストプラクティス</li>
</ul>
</div>
</div></div>



<p class="wp-block-paragraph">Djangoを用いたWeb開発を行いたい人であれば、<strong><span class="marker-under">知らないと恥ずかしい超・基本知識の１つです。</span></strong>是非最後までご覧ください。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/python/rule/">Pythonの基本的な書き方・構文ルール</a></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-9" checked><label class="toc-title" for="toc-checkbox-9">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Django：テンプレートの継承とは</a></li><li><a href="#toc2" tabindex="0">ベーステンプレートの作成</a><ol><li><a href="#toc3" tabindex="0">Django：blockタグ</a></li></ol></li><li><a href="#toc4" tabindex="0">子テンプレートの作成とベーステンプレートからの継承</a><ol><li><a href="#toc5" tabindex="0">継承するHTMLファイルの指定</a></li></ol></li><li><a href="#toc6" tabindex="0">Django：extends/blockのまとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Django：テンプレートの継承とは</span></h2>



<p class="wp-block-paragraph">テンプレートの継承とは、あるテンプレート（一般的にはベーステンプレートと呼ばれます）が持つ<strong>一部または全部の構造や要素を再利用し、新たなテンプレートを作る方法</strong>を指します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">例えば、画面のヘッダーやフッターを定義するベーステンプレートを用意しておいて、そのテンプレートをもとに、ヘッダーやフッターだけを編集した別のテンプレートを作るようなイメージ。</p>
</div></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="772" height="592" src="https://it-biz.online/wp-content/uploads/2023/07/image-10.png" alt="Django テンプレートのイメージ" class="wp-image-8170" srcset="https://it-biz.online/wp-content/uploads/2023/07/image-10.png 772w, https://it-biz.online/wp-content/uploads/2023/07/image-10-300x230.png 300w, https://it-biz.online/wp-content/uploads/2023/07/image-10-500x383.png 500w, https://it-biz.online/wp-content/uploads/2023/07/image-10-768x589.png 768w" sizes="(max-width: 772px) 100vw, 772px" /><figcaption class="wp-element-caption">図2：Django テンプレートのイメージ</figcaption></figure>



<p class="wp-block-paragraph">これは、DjangoがDRY（Don't Repeat Yourself）というコーディング原則を反映したもので、同じコードを何度も書く必要を減らし、保守性と効率性を向上させるための機能の１つ。</p>



<p class="wp-block-paragraph">テンプレートの継承を理解するために、以下の２点について学習していきます。</p>



<ol class="wp-block-list">
<li><strong>基底テンプレートの作成：</strong> Djangoのテンプレートシステムでは、ベースとなるテンプレートを作成し、その中に再利用したいHTMLの構造や要素を定義。ナビゲーションバー、フッター、スタイルシートのリンク、スクリプトのリンクなど、複数のページで共有される要素を含みます。</li>



<li><strong>ブロックの定義とオーバーライド：</strong> ベーステンプレートには、子テンプレートでオーバーライド（上書き）または追加できるブロックを定義します。これらのブロックは、ページタイトル、メインコンテンツ、追加のスタイルシートなど、ページによって異なる可能性のある部分を占めます。</li>
</ol>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">上記２点についてステップバイステップで解説していきます。</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc2">ベーステンプレートの作成</span></h2>



<p class="wp-block-paragraph">まず、ベース（親）テンプレートを作成します。このベーステンプレートには、<strong><span class="marker-under">すべてのテンプレートから共有される「共通のHTML構造」を定義</span></strong>します。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/web-design/html-basic/">HTMLとは？</a></p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">以下がベーステンプレート（<code>base.html</code>）の例です。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!DOCTYPE html>
&lt;html lang="ja">
&lt;head>
    &lt;meta charset="UTF-8">
    &lt;title>{% block title %}デフォルトタイトル{% endblock title %}&lt;/title>
    &lt;!-- その他のメタ情報、スタイルシートのリンクなど -->
&lt;/head>
&lt;body>
    &lt;header>
        &lt;!-- ヘッダーの内容 -->
    &lt;/header>

    &lt;main>
        {% block content %}
        &lt;!-- この部分は子テンプレートでオーバーライドされます -->
        {% endblock content %}
    &lt;/main>

    &lt;footer>
        &lt;!-- フッターの内容 -->
    &lt;/footer>

    &lt;!-- その他のスクリプトなど -->
&lt;/body>
&lt;/html></pre>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/web-design/html-rule/">HTMLの基本構造・書き方</a> / <a href="https://it-biz.online/web-design/header/">&lt;header>タグ</a> /<a href="https://it-biz.online/web-design/main/">&lt;main>タグ</a></p>



<p class="wp-block-paragraph">ここでは<code>{% block title %}</code>と<code>{% block content %}</code>の2つのブロックを定義しています。これらは子テンプレートでオーバーライドすることができます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">ここで、blockタグについて詳細を補足します。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc3">Django：blockタグ</span></h3>



<p class="wp-block-paragraph"><code>block</code> は<strong>テンプレート内で再利用可能なセクションを定義するためのタグ</strong>です。ベーステンプレートでは <code>block</code> を使用して子テンプレートで上書き（オーバーライド）できるセクションを定義します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">{% block blockname %}
    Default content...
{% endblock %}</pre>



<p class="wp-block-paragraph"><code><span class="bold-blue">blockname</span></code> はブロックの名前（任意の名前）で、<code><span class="bold-blue">Default content...</span></code> はブロックのデフォルトコンテンツ（子テンプレートでオーバーライドされない場合に表示される部分）です。</p>



<p class="wp-block-paragraph">このblockタグを利用した部分は、次に解説する子テンプレートで上書きをすることが可能になるということです。</p>



<h2 class="wp-block-heading"><span id="toc4">子テンプレートの作成とベーステンプレートからの継承</span></h2>



<p class="wp-block-paragraph">次に、ベーステンプレートから継承する子テンプレートを作成します。</p>



<p class="wp-block-paragraph">子テンプレートでは、<code><span class="bold-blue">{% extends "base.html" %}</span></code>を使用して基底テンプレートから継承を行い、<code><span class="bold-blue">{% block %}</span></code>タグを使用して基底テンプレートのブロックをオーバーライドします。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">{% extends "base.html" %}

{% block title %}マイページ{% endblock title %}

{% block content %}
    &lt;h1>ようこそ、マイページへ！&lt;/h1>
    &lt;!-- その他のコンテンツ -->
{% endblock content %}</pre>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/web-design/h1-h6/">hタグ</a></p>



<p class="wp-block-paragraph">この子テンプレートでは、基底テンプレートの<code>title</code>ブロックと<code>content</code>ブロックをオーバーライドしています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">分かりやすく言うと、<strong>１行目のextendsタグで「base.html」をテンプレートにするよ！</strong>と宣言。<br>そして、blockタグで「<strong>この部分はこの内容で上書きするよ！</strong>」という処理を書いています。</p>
</div></div>



<p class="wp-block-paragraph">具体的なサンプルコードを見てみましょう。</p>



<p class="wp-block-paragraph">例えば、以下のようなベーステンプレートがあるとします。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!DOCTYPE html>
&lt;html>
&lt;head>
    &lt;title>{% block title %}デフォルトタイトル{% endblock %}&lt;/title>
&lt;/head>
&lt;body>
    &lt;header>
        &lt;nav>
            &lt;!-- ナビゲーションメニュー -->
        &lt;/nav>
    &lt;/header>

    &lt;main>
        {% block content %}
        &lt;!-- デフォルトコンテンツ:子テンプレートでオーバーライド予定 -->
        {% endblock %}
    &lt;/main>

    &lt;footer>
        &lt;!-- フッター情報 -->
    &lt;/footer>
&lt;/body>
&lt;/html></pre>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/web-design/nav/">navタグ</a></p>



<p class="wp-block-paragraph">このテンプレートをもとに、<code>{% block %}</code>タグを使ってベーステンプレートのブロックをオーバーライド↓。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">{% extends "base.html" %}

{% block title %}
マイページ
{% endblock %}

{% block content %}
&lt;h1>ようこそ、マイページへ！&lt;/h1>
&lt;p>ここは、ユーザーのマイページです。&lt;/p>
{% endblock %}</pre>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/web-design/paragraph/">pタグ（段落タグ）</a></p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">こうすることで、ベーステンプレートをもとにして、必要な部分だけを上書きした画面が出来上がるというわけです。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="774" height="311" src="https://it-biz.online/wp-content/uploads/2023/07/image-11.png" alt="" class="wp-image-8171" srcset="https://it-biz.online/wp-content/uploads/2023/07/image-11.png 774w, https://it-biz.online/wp-content/uploads/2023/07/image-11-300x121.png 300w, https://it-biz.online/wp-content/uploads/2023/07/image-11-500x201.png 500w, https://it-biz.online/wp-content/uploads/2023/07/image-11-768x309.png 768w" sizes="(max-width: 774px) 100vw, 774px" /><figcaption class="wp-element-caption">図3：ベーステンプレートからの継承</figcaption></figure>
</div></div>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label fab-info-circle"><span class="tab-caption-box-label-text block-box-label-text box-label-text">テンプレートの継承の実践的な例</span></div><div class="tab-caption-box-content block-box-content box-content">
<p class="wp-block-paragraph">ここでは、ブログアプリを開発する場合の例を用いて、具体的にテンプレートの継承がどのように活用されるか？をご紹介します。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge-blue">ステップ１</span>　<strong>基底テンプレートの作成</strong></p>



<p class="wp-block-paragraph">ブログの全てのページで共有される要素（例えばナビゲーションバー、フッター、ヘッダー画像等）を含む基底テンプレート(<code>base.html</code>)を作成します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!DOCTYPE html>
&lt;html lang="ja">
&lt;head>
    &lt;meta charset="UTF-8">
    &lt;title>{% block title %}My Blog{% endblock title %}&lt;/title>
    &lt;!-- その他のメタ情報、スタイルシートのリンクなど -->
&lt;/head>
&lt;body>
    &lt;header>
        &lt;!-- ヘッダーの内容 -->
    &lt;/header>

    &lt;nav>
        &lt;!-- ナビゲーションバーの内容 -->
    &lt;/nav>

    &lt;main>
        {% block content %}
        &lt;!-- この部分は子テンプレートでオーバーライドされます -->
        {% endblock content %}
    &lt;/main>

    &lt;footer>
        &lt;!-- フッターの内容 -->
    &lt;/footer>

    &lt;!-- その他のスクリプトなど -->
&lt;/body>
&lt;/html></pre>



<p class="has-text-align-center wp-block-paragraph"><span class="badge-blue">ステップ２</span>　<strong>ブログ投稿ページのテンプレート作成</strong></p>



<p class="wp-block-paragraph">次に、基底テンプレートから継承したブログ投稿ページのテンプレート(<code>post_detail.html</code>)を作成します。このテンプレートでは、基底テンプレートの<code>content</code>ブロックをオーバーライドします。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">{% extends "base.html" %}

{% block title %}
{{ post.title }} - My Blog
{% endblock title %}

{% block content %}
    &lt;h1>{{ post.title }}&lt;/h1>
    &lt;p>{{ post.content }}&lt;/p>
{% endblock content %}</pre>



<p class="wp-block-paragraph">上記のようにして、すべてのページで共有される基本的なHTML構造を維持しつつ、個々のページで異なる内容を表示できます。これにより、コードの重複を避け、保守性と可読性を向上させることができます。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc5">継承するHTMLファイルの指定</span></h3>



<p class="wp-block-paragraph">Djangoでは<code>extends</code>タグを使って他のテンプレートを継承する際、<strong><span class="marker-under">テンプレートファイルの位置は<code>TEMPLATES</code>設定の<code>DIRS</code>オプションに指定されたディレクトリ</span></strong>が検索対象となります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">つまり、<code>extends</code>で指定するテンプレートファイルは同じフォルダに存在する必要はありません。</p>
</div></div>



<p class="wp-block-paragraph">通常、Djangoプロジェクトはプロジェクト全体のテンプレートを配置するための<code>templates</code>ディレクトリを持ち、各アプリケーションディレクトリの下にも各々<code>templates</code>ディレクトリを持つ構造になっています。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">myproject/
├── manage.py
├── myproject/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── wsgi.py
├── templates/
│   ├── base.html
└── todo/
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations/
    ├── models.py
    ├── templates/
    │   ├── todo/
    │   │   ├── index.html
    │   │   ├── task_form.html
    │   │   └── delete_confirm.html
    ├── tests.py
    ├── urls.py
    └── views.py</pre>



<p class="wp-block-paragraph">ここで、各アプリケーションディレクトリ（↑の例言えば「<code>todo</code>」）の下にある<code>templates</code>ディレクトリには、<strong>そのアプリケーション専用のテンプレートを配置</strong>。</p>



<p class="wp-block-paragraph">プロジェクト全体で共有するテンプレート（↑の例で言えば「<code>base.html</code>」）はプロジェクトレベルの<code>templates</code>ディレクトリに配置します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph"><code>settings.py</code>の<code>TEMPLATES</code>設定では<code>DIRS</code>オプションにプロジェクトレベルの<code>templates</code>ディレクトリのパスを含めます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># settings.py
TEMPLATES = [
    {
        ...
        'DIRS': [BASE_DIR / 'templates'],  # BASE_DIRはプロジェクトのルートディレクトリを表す
        ...
    },
]</pre>



<p class="wp-block-paragraph">このようにすることで、<code>base.html</code>のようなプロジェクト全体で共有するテンプレートを各アプリケーションから参照することが可能になります。</p>
</div></div>



<p class="wp-block-paragraph">したがって、<code>todo</code>アプリケーションの<code>index.html</code>から<code>base.html</code>を継承するには、以下のように記述すればOKということ。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">{% extends 'base.html' %}
...</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph"><code>extends</code>タグで指定するテンプレートファイルの位置は、<code>TEMPLATES</code>設定の<code>DIRS</code>オプションで指定されたディレクトリの下であればどこでもかまいません。</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc6">Django：extends/blockのまとめ</span></h2>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center wp-block-paragraph"><strong>テンプレートの継承とは</strong></p>



<ol class="wp-block-list">
<li>テンプレートの継承とは、１つのテンプレート（ベーステンプレート）の構造を他のテンプレート（子テンプレート）が継承することを指す。
<ul class="wp-block-list">
<li>HTMLやテンプレートコードの重複を避け、テンプレートの再利用性と保守性を向上させるための重要な手法。</li>
</ul>
</li>



<li>Djangoでは<code>{% extends %}</code>タグを使用してテンプレートの継承を行う。</li>



<li>ベーステンプレート内で、<code>{% block %}</code>タグを用いて子テンプレートでオーバーライドできるセクションを定義する。</li>
</ol>



<p class="has-text-align-center wp-block-paragraph"><strong>ベーステンプレート</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!DOCTYPE html>
&lt;html>
&lt;head>
    &lt;title>{% block title %}デフォルトタイトル{% endblock %}&lt;/title>
&lt;/head>
&lt;body>
    {% block content %}
    &lt;!-- この部分は子テンプレートでオーバーライド予定 -->
    {% endblock %}
&lt;/body>
&lt;/html></pre>



<p class="has-text-align-center wp-block-paragraph"><strong>子テンプレート</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">{% extends "base.html" %}

{% block title %}
ページタイトル
{% endblock %}

{% block content %}
&lt;h1>ページタイトル&lt;/h1>
&lt;p>ここは、ページのコンテンツです。&lt;/p>
{% endblock %}</pre>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">初めてPythonを勉強するのは結構難しいですよね。</p>



<p class="wp-block-paragraph">でもその悩みを抱えているのは一人じゃありません。全てのPython使いが同じ道を進んできました。</p>
</div></div>



<p class="wp-block-paragraph">Pythonをはじめとするプログラミングスキルを武器に、<strong><span class="marker-under">時間と場所に捉われない自由な生き方</span></strong>を目指してみませんか？今すぐ行動したい方は以下の記事をチェック！</p>



<div class="wp-block-cocoon-blocks-button-1 aligncenter button-block"><a href="https://it-biz.online/lifehack/programming/" class="btn btn-m btn-circle btn-shine has-text-color has-background has-cocoon-black-color has-orange-background-color" target="_self">【無料】プログラミングスクールの探し方 ></a></div>



<p class="has-text-align-center wp-block-paragraph"><span class="badge-green">読者料典</span>　<a href="https://it-biz.online/python/python-roadmap/">Python入門：学習カリキュラム</a>　←こちらから！</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【簡単５ステップ】DjangoでMySQLを利用する方法を３分で解説</title>
		<link>https://it-biz.online/python/django-mysql/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Fri, 30 Jun 2023 07:52:34 +0000</pubDate>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[データベース]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=8000</guid>

					<description><![CDATA[DjangoでMySQLを利用するためのステップバイステップの手順を解説します。 DjangoはデフォルトのDBMSとしてSQLiteが設定されていますが、大規模なデータを扱うようなアプリケーションや、複数のプロセスから [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://it-biz.online/python/django/">Django</a>で<strong>MySQL</strong>を利用するためのステップバイステップの手順を解説します。</p>



<p class="wp-block-paragraph">Djangoはデフォルトの<a href="https://it-biz.online/it-skills/dbms/">DBMS</a>として<strong>SQLite</strong>が設定されていますが、大規模なデータを扱うようなアプリケーションや、複数のプロセスから同時にアクセスするような状況では、パフォーマンスやデータ整合性の問題が生じる可能性があります。</p>



<p class="wp-block-paragraph">一方、MySQLは大量のデータを扱うことができ、複数のユーザーからの同時アクセスに対応することができ、トランザクションをサポートしているため、データの整合性を保つことが可能。そのため、Djangoの開発では、SQLiteをそのまま利用するのではなくMySQLなどのデータベースを利用するのが一般的。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/it-skills/db-transaction/">トランザクションとは？</a></p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">このページでは、以上のような背景を踏まえ、DjangoでMySQLを利用する方法を５つのステップに分けてわかりやすく解説します。</p>
</div></div>



<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title">DjangoでMySQLを利用する方法</div>
<ul class="wp-block-list">
<li><span class="badge-blue">ステップ1</span>　MySQLのインストール</li>



<li><span class="badge-blue">ステップ2</span>　MySQLデータベースの作成</li>



<li><span class="badge-blue">ステップ3</span>　MySQLユーザーの作成と権限の付与</li>



<li><span class="badge-blue">ステップ4</span>　DjangoでMySQLを使うための設定</li>



<li><span class="badge-blue">ステップ5</span>　データベースのマイグレーション</li>
</ul>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">この解説は、既にVPS（CentOS）上にDjangoがインストールされている状況を想定しています。１から自分だけでDjango開発を行ってPythonの勉強をしたい方は以下の記事をご覧ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-ビズドットオンライン wp-block-embed-ビズドットオンライン"><div class="wp-block-embed__wrapper">

<a href="https://it-biz.online/it-skills/vps-python/" title="【簡単９ステップ】VPS上にPythonの実行環境を構築する方法" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://it-biz.online/wp-content/uploads/2023/04/vps-python-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://it-biz.online/wp-content/uploads/2023/04/vps-python-320x180.png 320w, https://it-biz.online/wp-content/uploads/2023/04/vps-python-240x135.png 240w, https://it-biz.online/wp-content/uploads/2023/04/vps-python-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【簡単９ステップ】VPS上にPythonの実行環境を構築する方法</div><div class="blogcard-snippet internal-blogcard-snippet">この記事では、VPS上にPythonの実行環境を構築する手順をわずか5分で学べます。シンプルかつ詳細なガイドラインに従って、プログラミングスキルを新たなレベルに引き上げましょう。初心者でも安心のステップバイステップの方法を提供します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://it-biz.online" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">it-biz.online</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2023.06.30</div></div></div></div></a>
</div></figure>
</div></div>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-11" checked><label class="toc-title" for="toc-checkbox-11">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ステップ１：MySQLのインストール</a></li><li><a href="#toc2" tabindex="0">ステップ２：MySQLデータベースの作成</a></li><li><a href="#toc3" tabindex="0">ステップ３：MySQLユーザーの作成と権限の付与</a></li><li><a href="#toc4" tabindex="0">ステップ４：DjangoでMySQLを使うための設定</a></li><li><a href="#toc5" tabindex="0">ステップ５：データベースのマイグレーション</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ステップ１：MySQLのインストール</span></h2>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">それでは早速DjangoでMySQLを利用する方法を解説していきます。</p>
</div></div>



<p class="wp-block-paragraph">まずはMySQLサーバをインストールします。以下のコマンドを実行。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo yum install mysql-server</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">このコマンドを実行すると、以下のような結果が返って来ますので「y」を入力。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ダウンロードサイズの合計: 21 M
インストール後のサイズ: 179 M
これでよろしいですか? [y/N]: </pre>
</div></div>



<p class="wp-block-paragraph">次に、MySQLサーバを起動します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo systemctl start mysqld</pre>



<p class="wp-block-paragraph">MySQLが正常に起動したか確認するには、以下のコマンドを実行します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo systemctl status mysqld</pre>



<p class="wp-block-paragraph">以下のような結果が返ってくればOK。正常に起動していることが確認できます。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="585" height="201" src="https://it-biz.online/wp-content/uploads/2023/06/image-53.png" alt="MySQL active" class="wp-image-8004" srcset="https://it-biz.online/wp-content/uploads/2023/06/image-53.png 585w, https://it-biz.online/wp-content/uploads/2023/06/image-53-300x103.png 300w, https://it-biz.online/wp-content/uploads/2023/06/image-53-500x172.png 500w" sizes="(max-width: 585px) 100vw, 585px" /><figcaption class="wp-element-caption">図1:MySQL active</figcaption></figure>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">● mysqld.service - MySQL 8.0 database server
     Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; preset: disabled)
     Active: active (running) since Fri 2023-06-30 15:15:27 JST; 18s ago
    Process: 357658 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
    Process: 357680 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (code=exited, status=0/SUCCESS)
   Main PID: 357756 (mysqld)
     Status: "Server is operational"
      Tasks: 39 (limit: 11106)
     Memory: 449.0M
        CPU: 3.592s
     CGroup: /system.slice/mysqld.service
             mq357756 /usr/libexec/mysqld --basedir=/usr</pre>



<h2 class="wp-block-heading"><span id="toc2">ステップ２：MySQLデータベースの作成</span></h2>



<p class="wp-block-paragraph">次に、<strong>Djangoで使用するためのデータベースを作成</strong>します。まず、MySQLのシェルにログインします。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">mysql -u root -p</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">パスワードの入力が求められますが、今はまだパスワードを設定していないのでそのままEnterボタンを押下。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># mysql -u root -p
Enter password:
→このままEnterボタンを実行でログインできます。</pre>
</div></div>



<p class="wp-block-paragraph">ログインが完了すると以下のような結果が返って来ます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.32 Source distribution

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">ログインしたら<strong>以下のコマンドを実行してデータベースを作成</strong>します。<code>your_database_name</code>は、作成したいデータベース名に置き換えてください。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">CREATE DATABASE your_database_name CHARACTER SET UTF8;

---結果---
mysql> CREATE DATABASE your_database_name CHARACTER SET UTF8;
Query OK, 1 row affected, 1 warning (0.02 sec)</pre>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label fab-exclamation-circle"><span class="tab-caption-box-label-text block-box-label-text box-label-text">ユーザのパスワード設定方法</span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">MySQLユーザのパスワードの設定方法は以下のような流れで行われます。</p>
</div></div>



<p class="wp-block-paragraph">まずは、以下のコマンドを実行してください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo mysql_secure_installation</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">このコマンドを実行すると、セキュリティ設定を行うための対話型のスクリプトが起動します。スクリプトは以下の手順で進行します。</p>
</div></div>



<ol class="wp-block-list">
<li>パスワードの設定をするかどうかを尋ねられます。"Y"を入力してEnterキーを押します。</li>



<li>新しいパスワードを入力してください。適切なパスワードを入力し、Enterキーを押します。</li>



<li>パスワードの強度を確認するために再度パスワードを入力します。同じパスワードを再入力し、Enterキーを押します。</li>



<li>パスワードが正しく設定されたか確認されます。</li>



<li>f匿名ユーザの削除、rootユーザのリモートログインの禁止、テストデータベースの削除を選択します。詳細は環境に合わせて選択してください。</li>
</ol>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">上記の手順を実行すると、MySQLのパスワードが設定されます。再度ログインする際には、設定したパスワードを使用してログインしてください。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># sudo mysql_secure_installation

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Please set the password for root here.

New password:

Re-enter new password:

Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : n

 ... skipping.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n

 ... skipping.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : n

 ... skipping.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : n

 ... skipping.
All done!</pre>
</div></div>



<h2 class="wp-block-heading"><span id="toc3">ステップ３：MySQLユーザーの作成と権限の付与</span></h2>



<p class="wp-block-paragraph">MySQLへのログインが成功したら、Djangoからデータベースにアクセスするためのユーザーを作成し、権限を付与します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">以下のコマンドを実行してください。<code>your_username</code>と<code>your_password</code>は、作成したいユーザー名とパスワードに置き換えてください。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';

-----
Query OK, 0 rows affected (0.01 sec)</pre>



<p class="wp-block-paragraph">作成したユーザーに対して、先ほど作成したデータベースへの全権限を付与します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';

-----
Query OK, 0 rows affected (0.01 sec)</pre>



<p class="wp-block-paragraph">変更を有効にするために、最後に以下のコマンドを実行します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">FLUSH PRIVILEGES;</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">これでMySQLの設定は完了です。MySQLのシェルを終了します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">exit;</pre>
</div></div>



<h2 class="wp-block-heading"><span id="toc4">ステップ４：DjangoでMySQLを使うための設定</span></h2>



<p class="wp-block-paragraph">Django側でMySQLを使えるように設定します。まず、DjangoがMySQLを使うために必要なパッケージをインストールします。以下のコマンドを実行してください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install mysqlclient</pre>



<p class="wp-block-paragraph">次に、Djangoの設定ファイルである<code>settings.py</code>を開き、データベースの設定を以下のように変更します。適切なデータベース名、ユーザー名、パスワードに置き換えてください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'your_database_name',
        'USER': 'your_username',
        'PASSWORD': 'your_password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">以上で、DjangoとMySQLの設定は完了です。</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc5">ステップ５：データベースのマイグレーション</span></h2>



<p class="wp-block-paragraph">最後に、Djangoのマイグレーションを実行して、データベースのセットアップを完了します。以下のコマンドを実行してください。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">python manage.py migrate</pre>



<p class="wp-block-paragraph">このコマンドにより、DjangoのデータベーススキーマがMySQLに適用されます。</p>



<p class="wp-block-paragraph">以上で、DjangoでMySQLを利用する設定が完了しました。これにより、Djangoで作成したWebアプリケーションでMySQLデータベースを利用することができます。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Django】モデル（models.py）：初心者向けに３ステップで解説</title>
		<link>https://it-biz.online/python/models/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Mon, 03 Jul 2023 12:15:01 +0000</pubDate>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=8006</guid>

					<description><![CDATA[Web開発の世界では、データの管理と操作が非常に重要な役割を果たします。PythonのWebフレームワークであるDjangoは、このデータ管理を効率的に行うための強力なツールをモデル（models.py）として提供してい [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Web開発の世界では、データの管理と操作が非常に重要な役割を果たします。<a href="https://it-biz.online/python/python-abc/">Python</a>のWebフレームワークであるDjangoは、このデータ管理を効率的に行うための強力なツールを<strong>モデル</strong>（<strong>models.py</strong>）として提供しています。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/python/django/">Djangoとは？</a></p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">Djangoのモデルは、<a href="https://it-biz.online/it-skills/database/">データベース</a>の構造を定義するためのPythonのクラスで、テーブルのカラムやリレーションを定義します。これにより、データベースとのやり取りが容易になり、データの整合性を保つことが可能となります。</p>
</div></div>



<p class="wp-block-paragraph">このページでは、Djangoのモデルについて、その基本的な概念から具体的な使用方法まで、初心者向けにわかりやすく解説します。5つのステップを通じて、Djangoのモデルを理解し、効果的に使用する方法を学んでいきましょう。</p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label fab-edit"><span class="tab-caption-box-label-text block-box-label-text box-label-text">このページで学べる内容</span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title"></div>
<ul class="wp-block-list">
<li><strong>Djangoモデルの基本</strong></li>



<li>Djangoモデルの作成方法</li>



<li>Djangoの主キーモデル</li>
</ul>
</div>
</div></div>



<p class="wp-block-paragraph">Pythonエンジニア/Djangoを利用したWeb開発者を目指す方であれば<strong><span class="marker-under">知らないと恥ずかしい超・基本知識の１つ</span></strong>。是非最後までご覧ください。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/python/rule/">Pythonの基本的な書き方・構文ルール</a></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-13" checked><label class="toc-title" for="toc-checkbox-13">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ステップ1：Djangoモデル（models.py）の基本</a><ol><li><a href="#toc2" tabindex="0">モデルの定義（models.py の定義）</a></li><li><a href="#toc3" tabindex="0">フィールド（項目）の種類</a></li><li><a href="#toc4" tabindex="0">モデルのマイグレーション</a></li></ol></li><li><a href="#toc5" tabindex="0">ステップ2：Djangoモデルの作成方法</a></li><li><a href="#toc6" tabindex="0">ステップ3：Djangoモデルの操作方法</a><ol><li><a href="#toc7" tabindex="0">データの作成</a></li><li><a href="#toc8" tabindex="0">データの取得</a></li><li><a href="#toc9" tabindex="0">データの更新</a></li><li><a href="#toc10" tabindex="0">データの削除</a></li></ol></li><li><a href="#toc11" tabindex="0">Djangoモデル（models.py）のまとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ステップ1：Djangoモデル（models.py）の基本</span></h2>



<p class="wp-block-paragraph">Djangoのモデル（models.py）は、アプリケーションのデータを構造化し、Pythonのクラスとして定義します。これにより、データベースとのやり取りが容易になり、データの整合性を保つことが可能になります。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/python/class-2/">Pythonのクラスの基本</a></p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph"><strong>と説明されても、なかなかピンと来ない</strong>方も多いはずなので、この章では実際のサンプルコードを見つつ、Djangoモデルの基本的な要素とその役割について深めていきましょう。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc2">モデルの定義（models.py の定義）</span></h3>



<p class="wp-block-paragraph">Djangoモデルは、Pythonのクラスとして定義。このクラスは<code><strong>django.db.models.Model</strong></code>を継承します。モデルクラスの各フィールドは、モデルフィールドクラスのインスタンスとして定義され、これがデータベースの<strong><span class="marker-under">各項目</span></strong>を表します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">例えば、ブログ投稿を表すモデルを作成する場合、以下のように定義することができます。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField('date published')</pre>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/python/py-import/">import文</a></p>



<p class="wp-block-paragraph">モデルクラスの名前は、通常<strong>表現したいオブジェクトを表す名詞の単数形</strong>を使用。例えば、ブログ投稿を表すモデルを作成する場合、<code>BlogPost</code>という名前を使用します。</p>



<p class="wp-block-paragraph">モデルクラス内のフィールドは、データベースの各列（カラム）を表します。フィールドの名前はPythonの変数として有効なものであれば何でも構いません。フィールドの型は、そのフィールドがどのようなデータを保存するかをDjangoに伝えます。</p>



<h3 class="wp-block-heading"><span id="toc3">フィールド（項目）の種類</span></h3>



<p class="wp-block-paragraph">Djangoは多くの種類のフィールドを提供しています。これにより、様々な種類のデータをデータベースに保存することができます。以下に、いくつかの主要なフィールドを示します。</p>



<figure class="wp-block-table aligncenter"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>フィールドタイプ</th><th>用途</th></tr></thead><tbody><tr><td><strong>CharField</strong></td><td>短い文字列<br>max_length（最大長を指定する必要があります）</td></tr><tr><td><strong>TextField</strong></td><td>長い文字列</td></tr><tr><td><strong>DateTimeField</strong></td><td>日付と時間</td></tr><tr><td><strong>IntegerField</strong></td><td>整数</td></tr><tr><td><strong>BooleanField</strong></td><td>真偽値（True/False）</td></tr><tr><td><strong>FloatField</strong></td><td>浮動小数点数</td></tr><tr><td><strong>EmailField</strong></td><td>メールアドレス</td></tr></tbody></table></div></figure>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/it-skills/data_type/">プログラミング言語におけるデータ型</a></p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">これらは一部の例であり、Djangoはこれら以外にも多くのフィールドタイプを提供しています。例えば、<code>ImageField</code>や<code>FileField</code>はファイルのアップロードを扱い、<code>ForeignKey</code>や<code>ManyToManyField</code>はモデル間のリレーションシップを表現します。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc4">モデルのマイグレーション</span></h3>



<p class="wp-block-paragraph">モデルを定義したら、それを<strong><span class="marker-under">データベースに反映する必要</span></strong>があります。これを行うために、Djangoはマイグレーションという機能を提供しています。マイグレーションは、モデルの変更をデータベーススキーマに適用する方法です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">マイグレーションを作成するには、以下のコマンドを実行します。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">python manage.py makemigrations

# Migrations for 'todo':
#   todo/migrations/0003_blogpost.py
#     - Create model BlogPost</pre>



<p class="wp-block-paragraph">このコマンドを実行すると、Djangoはモデルの変更を追跡し、<strong>それらの変更をマイグレーションファイルに記録</strong>します。次に、以下のコマンドを実行して、これらのマイグレーションをデータベースに適用するという流れ。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">python manage.py migrate

# Operations to perform:
#   Apply all migrations: admin, auth, contenttypes, sessions, todo
# Running migrations:
#   Applying todo.0003_blogpost... OK</pre>



<p class="wp-block-paragraph">これにより、モデルの変更がデータベーススキーマに反映されます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">例えば、利用している<a href="https://it-biz.online/it-skills/dbms/">DBMS</a>がMySQLの場合、スキーマ反映後は以下のようにきちんとテーブルが作成されていることが分かります。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">mysql> desc todo_blogpost;
+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | bigint       | NO   | PRI | NULL    | auto_increment |
| title    | varchar(200) | NO   |     | NULL    |                |
| content  | longtext     | NO   |     | NULL    |                |
| pub_date | datetime(6)  | NO   |     | NULL    |                |
+----------+--------------+------+-----+---------+----------------+</pre>



<figure class="wp-block-embed is-type-wp-embed is-provider-ビズドットオンライン wp-block-embed-ビズドットオンライン"><div class="wp-block-embed__wrapper">

<a href="https://it-biz.online/python/django-mysql/" title="【簡単５ステップ】DjangoでMySQLを利用する方法を３分で解説" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://it-biz.online/wp-content/uploads/2023/06/Django-MySQL-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://it-biz.online/wp-content/uploads/2023/06/Django-MySQL-320x180.png 320w, https://it-biz.online/wp-content/uploads/2023/06/Django-MySQL-240x135.png 240w, https://it-biz.online/wp-content/uploads/2023/06/Django-MySQL-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【簡単５ステップ】DjangoでMySQLを利用する方法を３分で解説</div><div class="blogcard-snippet internal-blogcard-snippet">DjangoでMySQLを利用するための設定方法を５つのステップに分けて解説します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://it-biz.online" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">it-biz.online</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2023.08.01</div></div></div></div></a>
</div></figure>



<p class="wp-block-paragraph">以上が、Djangoモデルの基本的な概念とその使用方法です。次のステップでは、具体的なモデルの作成方法について詳しく見ていきましょう。</p>



<h2 class="wp-block-heading"><span id="toc5">ステップ2：Djangoモデルの作成方法</span></h2>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">前章ではDjangoモデルの基本的な概念を学びました。今回はその知識を活かし、具体的なモデルの作成方法について見ていきましょう。</p>
</div></div>



<p class="wp-block-paragraph">Djangoモデルを作成するためには、まず新しいアプリケーションを作成。以下のコマンドを実行して新しいアプリケーションを作成します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">python manage.py startapp your_app_name</pre>



<p class="wp-block-paragraph">このコマンドを実行すると、<strong>新しいアプリケーションディレクトリが作成</strong>され、その中には<code>models.py</code>というファイルが作成されます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">この<strong><code>models.py</code>ファイルが、モデルを定義する場所</strong>です。</p>
</div></div>



<p class="wp-block-paragraph">ブログ投稿を表すモデルを作成する場合、この<code>models.py</code>にモデルを編集することで先ほどのようなテーブルを作成することができます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField('date published')</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">あとは、マイグレーション。マイグレーションを実行する際には、特定のアプリケーションを指定することもできます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">python manage.py makemigrations your_app_name</pre>



<p class="wp-block-paragraph">このコマンドを実行すると、Djangoは<code>your_app_name</code>アプリケーションのモデルの変更を追跡し、それらの変更をマイグレーションファイルに記録します。</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc6">ステップ3：Djangoモデルの操作方法</span></h2>



<p class="wp-block-paragraph">ここまでで、モデル（models.py）を作成し、データベースに反映する方法を学びました。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">次はモデルを使ってデータベースの操作を行う方法について解説します。具体的には、データの作成、取得、更新、削除（CRUD操作）について説明します。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc7">データの作成</span></h3>



<p class="wp-block-paragraph">Djangoモデルを使って新しいデータを作成するには、モデルクラスのインスタンスを作成し、それを保存。以下に、<code>BlogPost</code>モデルを使って新しいブログ投稿を作成する例を示します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">from django.utils import timezone
from .models import BlogPost

post = BlogPost(title='My first post', content='This is my first post.', pub_date=timezone.now())
post.save()</pre>



<p class="wp-block-paragraph">この例では、まず<code>BlogPost</code>クラスのインスタンス<code>post</code>を作成しています。<code>BlogPost</code>の括弧内には、各フィールドの初期値を指定。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">ここでは、<code>title</code>には<code>'My first post'</code>、<code>content</code>には<code>'This is my first post.'</code>、<code>pub_date</code>には現在の日時（<code>timezone.now()</code>）を設定しています。</p>
</div></div>



<p class="wp-block-paragraph">最後に、<strong><code>save()</code>メソッド</strong>を呼び出すことで、このインスタンスをデータベースに保存しています。この操作により、新しいブログ投稿がデータベースに作成されるという仕組みです。</p>



<h3 class="wp-block-heading"><span id="toc8">データの取得</span></h3>



<p class="wp-block-paragraph">データベースからデータを取得するには、モデルクラスの<code>objects</code>属性を使用します。<code>objects</code>属性は、モデルクラスに対するデータベースクエリを表すマネージャオブジェクトです。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">以下に、すべてのブログ投稿を取得する例を示します。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">posts = BlogPost.objects.all()</pre>



<p class="wp-block-paragraph">この例では、<code>BlogPost.objects.all()</code>がすべての<code>BlogPost</code>オブジェクトを返します。この結果はPythonのリスト。つまり、forループを使って各ブログ投稿を順に処理することができる仕組みです。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/python/python-list/">リストとは？</a> / <a href="https://it-biz.online/python/for-range/">forループとは？</a></p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label fab-edit"><span class="tab-caption-box-label-text block-box-label-text box-label-text">条件を指定してデータを取得する</span></div><div class="tab-caption-box-content block-box-content box-content">
<p class="wp-block-paragraph">モデルクラスの<code>objects</code>属性には、条件を指定してデータを取得するためのメソッドが用意されています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">例えば、<code>filter()</code>メソッドを使用すると、指定した条件に一致するすべてのオブジェクトを取得することができます。以下に、タイトルが<code>'My first post'</code>であるすべてのブログ投稿を取得する例を示します。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">posts = BlogPost.objects.filter(title='My first post')</pre>



<p class="wp-block-paragraph">この例では、<code>filter(title='My first post')</code>がタイトルが<code>'My first post'</code>であるすべての<code>BlogPost</code>オブジェクトを返します。この結果はPythonのリストと同様に扱うことができます。</p>



<p class="wp-block-paragraph">また、<code>get()</code>メソッドを使用すると、指定した条件に一致する一つのオブジェクトを取得することができます。ただし、<code>get()</code>メソッドは一致するオブジェクトが一つだけであることを期待しています。一致するオブジェクトがない場合や、複数存在する場合にはエラーが発生します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">以上のように、Djangoではデータを取得する際に様々な条件を指定することが可能です。これにより、必要なデータだけを効率的に取得することができます。</p>
</div></div>
</div></div>



<h3 class="wp-block-heading"><span id="toc9">データの更新</span></h3>



<p class="wp-block-paragraph">データを更新するには、<strong>①データを取得</strong>し、<strong>②その属性を変更</strong>し、③再度保存します。以下に、最初のブログ投稿のタイトルを更新する例を示します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">post = BlogPost.objects.get(pk=1)
post.title = 'Updated title'
post.save()</pre>



<p class="wp-block-paragraph">この例では、まず<strong><code>get()</code>メソッド</strong>を使用して最初のブログ投稿を取得しています。<code>get()</code>メソッドは、指定した条件に一致するオブジェクトをデータベースから取得します。ここでは、主キー（<code>pk</code>）が1のブログ投稿を取得しています。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/it-skills/primary-key/">主キー（primary key）とは？</a></p>



<p class="wp-block-paragraph">次に、取得したブログ投稿の<code>title</code>属性を更新し、<code>save()</code>メソッドを呼び出して変更をデータベースに保存しています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">この操作により、ブログ投稿のタイトルが更新されます。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc10">データの削除</span></h3>



<p class="wp-block-paragraph">データを削除するには、<strong>削除したいオブジェクトを取得し、その<code>delete()</code>メソッドを呼び出します。</strong>以下に、最初のブログ投稿を削除する例を示します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">post = BlogPost.objects.get(pk=1)
post.delete()</pre>



<p class="wp-block-paragraph">この例では、まず<code>get()</code>メソッドを使用して最初のブログ投稿を取得。次に、<code>delete()</code>メソッドを呼び出してこのブログ投稿をデータベースから削除しています。この操作により、指定したブログ投稿がデータベースから削除されるという流れです。</p>



<p class="wp-block-paragraph">以上が、Djangoモデルを使ったデータベースの基本的な操作方法です。これらの操作を理解し、適切に使い分けることで、Pythonコードからデータベースを効率的に操作することができるようになります。</p>



<h2 class="wp-block-heading"><span id="toc11">Djangoモデル（models.py）のまとめ</span></h2>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<ol class="wp-block-list">
<li><strong>Djangoモデルとは</strong>
<ul class="wp-block-list">
<li>Djangoモデルは、データベースのテーブルをPythonのクラスとして表現したものです。</li>



<li>モデルはデータの構造（フィールド）とそのデータに対する操作（メソッド）を定義します。</li>
</ul>
</li>



<li><strong>モデルの定義</strong>
<ul class="wp-block-list">
<li>モデルは<code>models.py</code>ファイル内に定義します。</li>



<li>モデルクラスは<code>django.db.models.Model</code>を継承します。</li>



<li>モデルのフィールドはクラス変数として定義します。</li>
</ul>
</li>



<li><strong>フィールドの種類</strong>
<ul class="wp-block-list">
<li>Djangoは様々な種類のフィールドを提供しています（例：<code>CharField</code>, <code>TextField</code>, <code>DateTimeField</code>など）。</li>



<li>各フィールドは特定のデータ型を表し、データベースの列（カラム）を定義します。</li>
</ul>
</li>
</ol>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    pub_date = models.DateTimeField('date published')</pre>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">始めてPythonを勉強するのは結構難しいですよね。</p>



<p class="wp-block-paragraph">でもその悩みを抱えているのは一人じゃありません。全てのPython使いが同じ道を進んできました。</p>
</div></div>



<p class="wp-block-paragraph">Pythonをはじめとするプログラミングスキルを武器に、<strong><span class="marker-under">時間と場所に捉われない自由な生き方</span></strong>を目指してみませんか？今すぐ行動したい方は以下の記事をチェック！</p>



<div class="wp-block-cocoon-blocks-button-1 aligncenter button-block"><a href="https://it-biz.online/lifehack/programming/" class="btn btn-m btn-circle btn-shine has-text-color has-background has-cocoon-black-color has-orange-background-color" target="_self">【無料】プログラミングスクールの探し方 ></a></div>



<p class="has-text-align-center wp-block-paragraph"><span class="badge-green">読者料典</span>　<a href="https://it-biz.online/python/python-roadmap/">Python入門：学習カリキュラム</a>　←こちらから！</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Django】プロジェクトの作成と基本構造を初心者向けに１から解説</title>
		<link>https://it-biz.online/python/project/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Wed, 12 Jul 2023 11:48:48 +0000</pubDate>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=8183</guid>

					<description><![CDATA[プロジェクトは、全てのアプリケーション、データベース設定、サードパーティライブラリ、静的ファイルなど、Webサイトやアプリケーションを構成する全ての要素を含む箱のようなもの。 Djangoのプロジェクト構造は、非常に組織 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">Web開発において、１つのWebサイトやアプリケーション全体を指し示す用語として「プロジェクト」という言葉が使用されます。</p>
</div></div>



<p class="wp-block-paragraph">プロジェクトは、全てのアプリケーション、データベース設定、サードパーティライブラリ、静的ファイルなど、<strong><span class="marker-under">Webサイトやアプリケーションを構成する全ての要素を含む箱のようなもの。</span></strong></p>



<p class="wp-block-paragraph"><a href="https://it-biz.online/python/django/">Django</a>のプロジェクト構造は、非常に組織化されていて、特定の規則によって構成されています。これにより、異なる開発者やチーム間で効率的なコーディングが可能になります。</p>



<p class="wp-block-paragraph">しかし、最初に見たとき、その構造は少々複雑に見えるかもしれません。それぞれのコンポーネントが何をするのか、どうやって連携するのかを理解することは、Djangoで効率的に開発を行うためには不可欠。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">このページでは、Djangoプロジェクトの各コンポーネントとその機能を一つ一つ解説し、どのように相互に関連し合っているかを説明します。初めてDjangoプロジェクトに取り組む方や、既に始めてみて「このファイルは何をするの？」と思っている方向けにわかりやすくご説明します。</p>
</div></div>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box"><div class="tab-caption-box-label block-box-label box-label fab-edit"><span class="tab-caption-box-label-text block-box-label-text box-label-text">このページで学べる内容</span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title"></div>
<ul class="wp-block-list">
<li>Djangoのプロジェクトとは？</li>



<li>Djangoのプロジェクトの作成方法</li>



<li>Djangoプロジェクトの構成</li>
</ul>
</div>
</div></div>



<p class="wp-block-paragraph">Djangoを用いたWeb開発を行いたい人であれば<strong><span class="marker-under">知らないと恥ずかしい超・基本知識の１つ</span>です。</strong>是非最後までご覧ください。</p>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/python/rule/">Pythonの基本的な書き方・構文ルール</a></p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-15" checked><label class="toc-title" for="toc-checkbox-15">目次</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">settings.py</a></li><li><a href="#toc3" tabindex="0">urls.py</a></li></ol></li><li><a href="#toc4" tabindex="0">Djangoアプリケーション</a><ol><li><a href="#toc5" tabindex="0">Djangoアプリケーションの作成</a></li><li><a href="#toc6" tabindex="0">プロジェクトとアプリケーションの統合</a></li></ol></li><li><a href="#toc7" tabindex="0">Django：プロジェクトのまとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Djangoプロジェクトの作成</span></h2>



<p class="wp-block-paragraph">はじめに、<strong>Djangoプロジェクトの作成方法</strong>を解説します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">Djangoプロジェクトの作成は驚くほど簡単です。適切なディレクトリに移動したら、次のコマンドを実行するだけ。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">django-admin startproject myproject</pre>



<p class="wp-block-paragraph">これで「myproject」という名前の新しいDjangoプロジェクトが作成されます。プロジェクトの名前は任意なので、目的とするWebサイトやWebアプリ用のプロジェクトであることがわかるようにしましょう。</p>



<p class="wp-block-paragraph">上記のプロジェクト作成を行うと、以下のようなディレクトリが構築されます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">この最初に作成されるファイルとディレクトリが、Djangoプロジェクトの基本構造です。ここでは、それぞれのファイルとディレクトリが何を表しているのかは↓の通り。</p>
</div></div>



<figure class="wp-block-table aligncenter"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>ファイル/ディレクトリ</th><th>説明</th></tr></thead><tbody><tr><td><code>manage.py</code></td><td>Djangoの道具箱です。<a href="https://it-biz.online/it-skills/server-abc/">サーバー</a>を立ち上げたり、<a href="https://it-biz.online/it-skills/database/">データベース</a>の操作を行ったりするのに使います。</td></tr><tr><td><code>myproject/__init__.py</code></td><td>このファイルがあることでPythonは<code>myproject</code>を<a href="https://it-biz.online/python/import/">パッケージ</a>（関連するPythonファイルのまとまり）と認識します。普通は何も書かなくてOK。</td></tr><tr><td><code>myproject/<strong>settings.py</strong></code></td><td>プロジェクト全体の設定が書かれています。例えば、使うデータベースの種類や、アプリケーションのリストなどです。</td></tr><tr><td><code>myproject/<strong>urls.py</strong></code></td><td>ここでは、ユーザーがアクセスするURLとそれに対応するコード（ビュー）を結びつけます。目次のようなものです。</td></tr><tr><td><code>myproject/asgi.py</code> and <code>myproject/wsgi.py</code></td><td>これらのファイルは、<a href="https://it-biz.online/it-skills/web-server/">Webサーバー</a>とDjangoの間の通信を助けます。基本的には何も触らなくても大丈夫です。</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">ここでは、特に大事な「<code><strong>settings.py</strong></code>」「<code><strong>urls.py</strong></code>」について詳しくご説明します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">これを理解することで、Djangoの「プロジェクト」の概念やイメージがより深まるはずです。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc2">settings.py</span></h3>



<p class="wp-block-paragraph">Djangoプロジェクトの心臓部とも言えるのが<code>settings.py</code>ファイルです。ここにはプロジェクト全体に関わる様々な設定が記述されています。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># settings.py

DEBUG = True  # デバッグモードを有効にします。

INSTALLED_APPS = [  # 使用するアプリケーションのリスト
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',  # 自作のアプリケーションもここで指定します。
]

MIDDLEWARE = [  # ミドルウェアのリスト
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'myproject.urls'  # ルートURL設定ファイルの指定

TEMPLATES = [  # テンプレートエンジンの設定
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
    },
]

DATABASES = {  # データベースの設定
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

STATIC_URL = '/static/'  # 静的ファイルへのURLのプレフィックス
STATIC_ROOT = os.path.join(BASE_DIR, 'static')  # 静的ファイルが集められる場所</pre>



<p class="has-text-align-center wp-block-paragraph"><span class="badge">参考</span>　<a href="https://it-biz.online/python/py-import/">import文</a> / <a href="https://it-biz.online/python/python-list/">Pythonのリスト</a></p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>設定</th><th>説明</th></tr></thead><tbody><tr><td><code>DEBUG</code></td><td>エラーが起きたときに詳細なエラー情報を表示するかどうかの設定。</td></tr><tr><td><code>INSTALLED_APPS</code></td><td>Djangoプロジェクトで使用するアプリケーションのリスト。自分で作成したアプリケーションやDjangoが用意しているアプリケーションなどをここで指定する。</td></tr><tr><td><code>MIDDLEWARE</code></td><td>リクエストとレスポンスを処理する際に、特定の処理を挟むためのミドルウェアのリスト。セキュリティ関連の処理やセッション管理などに使われる。</td></tr><tr><td><code>ROOT_URLCONF</code></td><td>プロジェクトのルートURL設定を行うファイルを指定。通常は<code>&lt;プロジェクト名&gt;.urls</code>が指定される。</td></tr><tr><td><code>TEMPLATES</code></td><td>テンプレートエンジンの設定。DjangoではデフォルトでDjangoテンプレートエンジンが使われるが、必要に応じて他のエンジンを使用することも可能。</td></tr><tr><td><code>DATABASES</code></td><td>使用するデータベースの設定。DjangoはデフォルトでSQLiteを使用するが、PostgreSQLやMySQLなど他のデータベースを使用することも可能。（<span class="badge-green">関連</span>　<a href="https://it-biz.online/python/django-mysql/">MySQLをDBとして利用する方法</a>）</td></tr><tr><td><code>STATIC_URL</code> and <code>STATIC_ROOT</code></td><td>静的ファイル（CSSやJavaScriptなど）の設定。<code>STATIC_URL</code>は静的ファイルへのURLのプレフィックスを、<code>STATIC_ROOT</code>はcollectstaticコマンドで静的ファイルが集められる場所を指定。</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">このように、<code>settings.py</code>ファイルには様々な設定項目が存在し、それぞれの設定がDjangoプロジェクトの挙動を決定します。</p>



<h3 class="wp-block-heading"><span id="toc3">urls.py</span></h3>



<p class="wp-block-paragraph">Djangoでは、ユーザーが指定したURLをクリックした際にどの画面に遷移させるか？（※どのビューを呼び出すか？）を設定します。その設定を行うのがurls.pyです。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">これをURLルーティングとも呼びます。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># urls.py

from django.urls import path
from . import views  # このプロジェクトのビューをインポート

urlpatterns = [
    path('', views.home, name='home'),  # ホームページ
    path('about/', views.about, name='about'),  # "about" ページ
    path('contact/', views.contact, name='contact'),  # "contact" ページ
]</pre>



<p class="wp-block-paragraph">このコードの<code>urlpatterns</code>というリストには、それぞれのURLパターンとそれに対応するビューが設定されています。</p>



<p class="wp-block-paragraph">たとえば、<code>path('about/', views.about, name='about')</code>という行では、ユーザーがWebサイトの"/about"というURLにアクセスしたときに<code>views.about</code>というビューを表示するよう指定しています。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">urls.py の基本や設定方法の詳細は以下の記事で解説しております。この機会に詳しく学習しておきたい方は以下をご覧ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-ビズドットオンライン wp-block-embed-ビズドットオンライン"><div class="wp-block-embed__wrapper">

<a href="https://it-biz.online/python/urls-py/" title="【Django】urls.py の仕組み・使い方のコツを３分で解説" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://it-biz.online/wp-content/uploads/2023/07/urls-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://it-biz.online/wp-content/uploads/2023/07/urls-320x180.png 320w, https://it-biz.online/wp-content/uploads/2023/07/urls-240x135.png 240w, https://it-biz.online/wp-content/uploads/2023/07/urls-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Django】urls.py の仕組み・使い方のコツを３分で解説</div><div class="blogcard-snippet internal-blogcard-snippet">【初心者向け】Djangoのurls.pyの基本的な概念・実践的な使い方を、シンプルで実用的なサンプルコードと共に分かりやすく解説します。DjangoのURLパターン、動的URLパターン、名前付きURLパターン、そしてURL名前空間の意味と役割を把握し、コーディングの効率を向上させましょう。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://it-biz.online" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">it-biz.online</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2023.07.12</div></div></div></div></a>
</div></figure>
</div></div>



<h2 class="wp-block-heading"><span id="toc4">Djangoアプリケーション</span></h2>



<p class="wp-block-paragraph">Djangoプロジェクトは、その全体を構成する複数のアプリケーションから成り立っています。</p>



<p class="wp-block-paragraph">アプリケーションとは、Webサイトの特定の機能（例えばToDo管理、ニュース配信、レポート機能）を実装するための部品のようなもの。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="905" height="320" src="https://it-biz.online/wp-content/uploads/2023/07/image-12.png" alt="" class="wp-image-8185" srcset="https://it-biz.online/wp-content/uploads/2023/07/image-12.png 905w, https://it-biz.online/wp-content/uploads/2023/07/image-12-300x106.png 300w, https://it-biz.online/wp-content/uploads/2023/07/image-12-500x177.png 500w, https://it-biz.online/wp-content/uploads/2023/07/image-12-768x272.png 768w, https://it-biz.online/wp-content/uploads/2023/07/image-12-800x283.png 800w" sizes="(max-width: 905px) 100vw, 905px" /><figcaption class="wp-element-caption">図1：プロジェクトとアプリケーション</figcaption></figure>



<p class="wp-block-paragraph">アプリケーションはそれぞれが特定の機能を提供し、複数のアプリケーションが組み合わさることで、大きなWebサイトを構成。これにより、Djangoは非常にスケーラブル（拡張可能）なフレームワークとなっています。</p>



<h3 class="wp-block-heading"><span id="toc5">Djangoアプリケーションの作成</span></h3>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">Djangoでは、新しいアプリケーションを作成するために<code>startapp</code>コマンドを使用します。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$ python manage.py startapp myapp</pre>



<p class="wp-block-paragraph">このコマンドを実行すると、<code>myapp</code>という名前の新しいDjangoアプリケーションが作成されます。そして、その中には以下のような一連のファイルが自動的に生成されます。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>ファイル名</th><th>説明</th></tr></thead><tbody><tr><td><code><a href="https://it-biz.online/python/models/">models.py</a></code></td><td>データベースのスキーマ（テーブルとそのフィールド）を定義します。これらの定義はDjangoのORM（Object-Relational Mapping）によりPythonのクラスとして扱われます。</td></tr><tr><td><code><a href="https://it-biz.online/python/views/">views.py</a></code></td><td>ユーザーに表示するページ（ビュー）を制御するためのロジックを記述します。ビューはユーザーのリクエストに対するレスポンスを決定します。</td></tr><tr><td><code><a href="https://it-biz.online/python/urls-py/">urls.py</a></code></td><td>アプリケーションのURLルーティングを定義します。特定のURLパスがどのビューに対応するのかをマッピングします。</td></tr><tr><td><code>admin.py</code></td><td>Djangoの管理者ページでこのアプリケーションのモデルをどのように表示するかを定義します。</td></tr><tr><td><code>apps.py</code></td><td>アプリケーションの設定情報が格納されています。通常は自動生成され、特別な設定が必要ない限り変更する必要はありません。</td></tr><tr><td><code>tests.py</code></td><td>アプリケーションのテストコードを記述します。Djangoは組み込みのテストフレームワークを提供しているため、ここにテストを書くことで自動テストが可能です。</td></tr><tr><td><code>migrations/</code></td><td>データベースのスキーマの変更を追跡するためのディレクトリです。<code>models.py</code>の変更に応じてマイグレーションファイルが生成され、これによりデータベースのバージョン管理が可能になります。</td></tr></tbody></table></div></figure>



<p class="wp-block-paragraph">これらの各ファイルはアプリケーションの特定の機能を担当し、それらがうまく連携することでアプリケーション全体が機能する仕組み。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">それぞれの詳細はリンクから内容を確認してください。</p>
</div></div>



<h3 class="wp-block-heading"><span id="toc6">プロジェクトとアプリケーションの統合</span></h3>



<p class="wp-block-paragraph">新しいアプリケーションを作成したら、それをプロジェクトに統合する必要があります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">具体的には、プロジェクトの<code>settings.py</code>ファイル内の<code>INSTALLED_APPS</code>設定に新しく作成したアプリケーションの名前を追加することで行います。</p>
</div></div>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># settings.py

INSTALLED_APPS = [
    # ...
    'myapp',  # 新しく作成したアプリケーションを追加
]</pre>



<p class="wp-block-paragraph">以上がDjangoのアプリケーションについての基本的な知識です。各アプリケーションが提供する機能を組み合わせることで、大きなDjangoプロジェクトを作り上げることが可能になります。</p>



<h2 class="wp-block-heading"><span id="toc7">Django：プロジェクトのまとめ</span></h2>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="wp-block-paragraph"><span class="badge-blue">ポイント１</span>　Djangoプロジェクトとは、１つのWebアプリケーション全体を指す。</p>



<p class="wp-block-paragraph"><span class="badge-blue">ポイント２</span>　Djangoプロジェクトの主要なディレクトリ構造は以下のようになる。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">- manage.py
- プロジェクト名/
  - __init__.py
  - settings.py
  - urls.py
  - asgi.py or wsgi.py</pre>



<p class="wp-block-paragraph"><span class="badge-blue">ポイント３</span>　Djangoアプリケーションはプロジェクト内の個々の機能を表すモジュールで、以下のディレクトリ構造を持つ。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">- アプリケーション名/
  - __init__.py
  - models.py
  - views.py
  - urls.py
  - admin.py
  - apps.py
  - tests.py
  - migrations/</pre>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p class="wp-block-paragraph">初めてPythonを勉強するのは結構難しいですよね。</p>



<p class="wp-block-paragraph">でもその悩みを抱えているのは一人じゃありません。全てのPython使いが同じ道を進んできました。</p>
</div></div>



<p class="wp-block-paragraph">Pythonをはじめとするプログラミングスキルを武器に、<strong><span class="marker-under">時間と場所に捉われない自由な生き方</span></strong>を目指してみませんか？今すぐ行動したい方は以下の記事をチェック！</p>



<div class="wp-block-cocoon-blocks-button-1 aligncenter button-block"><a href="https://it-biz.online/lifehack/programming/" class="btn btn-m btn-circle btn-shine has-text-color has-background has-cocoon-black-color has-orange-background-color" target="_self">【無料】プログラミングスクールの探し方 ></a></div>



<p class="has-text-align-center wp-block-paragraph"><span class="badge-green">読者料典</span>　<a href="https://it-biz.online/python/python-roadmap/">Python入門：学習カリキュラム</a>　←こちらから！</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
