SlideShare a Scribd company logo
1 of 22
Djangoでブログ風
作ってみよう!
プロジェクトを作る
• ▽django-admin startproject プロジェクト名
• (私のプロジェクト名はapp_blog)
プロジェクトの中身
_initi_.py プロジェクトを実行する時の初期化処理を行うス
クリプトファイル
setting.py 設定情報を記述したファイル
urls.py URLを管理するファイル
wsgi.py Webアプリケーションのメインプログラムとなる
部分
manage.py プロジェクトで実行する様々な機能に関するプロ
グラム
ブラウザにアクセスしよう
• ▽cd プロジェクト名
• ▽python manage.py runserver
• Webサーバーが起動してプロジェクトのプログラムが実行され
る
• http://localhost:8000/にアクセス
エラーになったら…
• 下のようなエラーになったら
• ▽python manage.py migrate
MVCアーキテクチャーとは
Model Webアプリとデーター
ベースとの間のやり取
りをする
View 画面表示関係
Controller 全体の制御を行う
Webアプリで作成する
プログラムの部分
ユーザー
コントローラー
ビュー モデル
データーベース
画面表示
webにアクセス
結果を表示
アプリケーションを作ろう
• 先ほど作ったプロジェクトのなかにアプリケーションを作る
• アプリケーションはMVC関係の処理をひとまとめにしたもの
• 1つのプロジェクトの中に複数アプリケーションを作って良い
ユーザー管理アプリケーション
在庫管理アプリケーション
カート管理アプリケーション
オンラインショップ
こんなものも
作れる!
アプリケーションをつくろう
• ▽python manage.py startapp 作成するアプリケーション名
• (私のアプリ名はblog)
アプリケーションファイルの中身
「migrations」フォルダ マイグレーションと言ってデータベース関係の機
能のファイルが入っている
_initi_.py アプリケーション初期化する
admin.py 管理者ツールのためのもの
apps.py アプリケーション本体の処理をまとめたもの
models.py(よく使う) モデルに関する処理を記述するもの
tests.py プログラムのテストに関するもの
views.py(よく使う) 画面表示に関するもの
テンプレートを利用しよう
• HTMLを読み込んで表示するだけでなくて、そこに様々な変数
やpythonの処理を埋め込む
• →できることが増える
• →HTMLのソースコードをコンパクトにできる
テンプレートを利用しよう(2)
Djangoはテンプレートを読み込み、
そこに組み込まれている変数などに値を代入してページを完成さ
せてからクライアントに送る
ページ
Welcome to
日にち
Django
3ページ
Welcome to Django
日にち 4月5日
Webページを表示しよう(1)
• プロジェクトの中の「setting.py」開く
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
‘blog‘, ←追加
]
Webページを表示しよう(2)
• フォルダをつくる
• 「プロジェクト名」→「blog」→「templates」→「blog」
Webページを表示しよう(3)
• Templates のアプリ名フォルダの中にindex.htmlをつくる
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>hello</title>
</head>
<body>
<h1>hello/index</h1>
<p>This is sample page.</p>
</body>
</html>
Webページを表示しよう(4)
• プロジェクトファイルの中のurls.pyを変更する
• 「どのアドレスにアクセスしたらどの処理を実行できるか」と
いう情報を管理
• ▽python manage.py runserver
from django.contrib import admin
from django.urls import path
import blog.views as blog
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/',blog.index),
]
http://localhost:
8000/blog
にアクセス
Webページを表示しよう(5)
urlpatterns
path(‘blog/’,blog.index)
path(‘hello/’,hello.index)
path(‘hello/ok’,hello.ok)
blog
index関数
hello
index関数
ok関数
Webページを表示しよう(6)
• Webページを表示する方法は2つある
• ①プロジェクトのurls.pyにすべて書く(さっきまでのやり方)
• ②各アプリごとにurls.pyを用意してそれらをプロジェクトの
urls.pyでまとめる
• ②の方が良い
Webページを表示しよう(7)
• アプリケーションファイルの中に新たにurls.pyを作る
• (P61)
from django.urls import path
from . import views
urlpatterns = [
path('',views.index,name='index’),
]
Webページを表示しよう(8)
• プロジェクトの中のurls.pyを修正
• ▽python manage.py runserver
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path(‘admin/’, admin.site.urls),
path(‘blog/’ , include(‘blog.urls’) ),
]
http://localhost:
8000/blog
にアクセス
テンプレートに値を渡してWebページを
表示する
ページ
Welcome to
日にち
Django
3ページ
Welcome to Django
日にち 4月5日
テンプレートに値を渡してWebページを
表示する(2)
• index.htmlを修正
<!doctype html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>{{title}}</title>
</head>
<body>
<h1>{{title}}</h1>
<p>{{msg}}</p>
</body>
</html>
テンプレートに値を渡してWebページを
表示する(3)
• アプリフォルダの中のviews.pyを修正
• ▽python manage.py runserver
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
params = {
'title':'hello/index',
'msg':'めいちゃかわいい',
}
return
render(request,'blog/index.html',params)
http://localhost:
8000/blog
にアクセス

More Related Content

What's hot

JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and SpockJJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
Nobuhiro Sue
 
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
Shinichi Hirauchi
 
GitHub入門 手順編
GitHub入門 手順編GitHub入門 手順編
GitHub入門 手順編
hideaki honda
 
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみたFuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
toshihirock
 

What's hot (20)

ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介
 
Vue
VueVue
Vue
 
Gws 20141024 gradle_intro
Gws 20141024 gradle_introGws 20141024 gradle_intro
Gws 20141024 gradle_intro
 
Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装
 
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
 
Nuxt
NuxtNuxt
Nuxt
 
Vuenative
VuenativeVuenative
Vuenative
 
Saitowotsukutsutemita
SaitowotsukutsutemitaSaitowotsukutsutemita
Saitowotsukutsutemita
 
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and SpockJJUG CCC 2011 Fall / Web test automation with Geb and Spock
JJUG CCC 2011 Fall / Web test automation with Geb and Spock
 
Web 02
Web 02Web 02
Web 02
 
DjangoでさくっとWeb アプリケーション開発をする話
DjangoでさくっとWeb アプリケーション開発をする話DjangoでさくっとWeb アプリケーション開発をする話
DjangoでさくっとWeb アプリケーション開発をする話
 
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
世界一簡単なGithub入門(githubは無料で使用する場合、全てのファイルが公開されていることにご注意ください)
 
GitHub入門 手順編
GitHub入門 手順編GitHub入門 手順編
GitHub入門 手順編
 
Okinawapm#3
Okinawapm#3Okinawapm#3
Okinawapm#3
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみたFuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
 
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + BerkshelfChef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
 
Nodejs
NodejsNodejs
Nodejs
 
Gitの紹介
Gitの紹介Gitの紹介
Gitの紹介
 
Gradleどうでしょう
GradleどうでしょうGradleどうでしょう
Gradleどうでしょう
 

Similar to Djangoのチュートリアル

How to django at first
How to django at firstHow to django at first
How to django at first
Maito Kuwahara
 
Sohu邮箱的python经验
Sohu邮箱的python经验Sohu邮箱的python经验
Sohu邮箱的python经验
Ryan Poy
 

Similar to Djangoのチュートリアル (20)

Git 20100724
Git 20100724Git 20100724
Git 20100724
 
Djangoとは
DjangoとはDjangoとは
Djangoとは
 
UnicastWS vol.2
UnicastWS vol.2UnicastWS vol.2
UnicastWS vol.2
 
Djangoのススメ
DjangoのススメDjangoのススメ
Djangoのススメ
 
node-webkit
node-webkit node-webkit
node-webkit
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門
 
210630 python
210630 python210630 python
210630 python
 
How to django at first
How to django at firstHow to django at first
How to django at first
 
Sohu邮箱的python经验
Sohu邮箱的python经验Sohu邮箱的python经验
Sohu邮箱的python经验
 
Web Intents入門
Web Intents入門Web Intents入門
Web Intents入門
 
単機能Twitter クライアント試作のための各種方法の検討
単機能Twitter クライアント試作のための各種方法の検討単機能Twitter クライアント試作のための各種方法の検討
単機能Twitter クライアント試作のための各種方法の検討
 
Angular の紹介
Angular の紹介Angular の紹介
Angular の紹介
 
SharePoint Framework Extension 基礎講座
SharePoint Framework Extension 基礎講座SharePoint Framework Extension 基礎講座
SharePoint Framework Extension 基礎講座
 
20080524
2008052420080524
20080524
 
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
Ansibleではじめるサーバー・ネットワークの自動化(2019/04版)
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
HTML5 開発環境の紹介
HTML5 開発環境の紹介HTML5 開発環境の紹介
HTML5 開発環境の紹介
 
恋するJenkins
恋するJenkins恋するJenkins
恋するJenkins
 
Jenkinsプラグインの中身を覗いてみよう
Jenkinsプラグインの中身を覗いてみようJenkinsプラグインの中身を覗いてみよう
Jenkinsプラグインの中身を覗いてみよう
 
PWA 総まとめ @ABC 2018 Spring
PWA 総まとめ @ABC 2018 SpringPWA 総まとめ @ABC 2018 Spring
PWA 総まとめ @ABC 2018 Spring
 

Recently uploaded

Recently uploaded (12)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

Djangoのチュートリアル