猫爺

なんとかボールのなんとかさまが嫁に似ているので好きです。

django コマンド

開発でdjangoを使用していますがそちらで使用するコマンドを覚えきれないので備忘録にのこします

 

サーバーの起動

python manage.py runserver

 

マイグレーションファイルの作成

python manage.py makemigrations 名前

名前の部分はプロジェクトのアプリケーション名を入れること

 

マイグレーションの実行

python manage.py migrate

 

管理者の作成

python manage.py createsuperuser

 

 

 

VSCode ショートカット

自前のweb開発でvscodeを使っていますがよく忘れるので備忘録として残します

macのショートカットのみを掲載します。

 

自分でショートカットを編集する際はこちらを参照してください

qiita.com

 

カーソルの移動

Ctrl + b 後退 カーソルの左側へ移動
Ctrl + f 前進 カーソルの右側へ移動
Ctrl + a 行頭へ移動
Ctrl + e 行末へ移動

 

文字の削除

 Ctrl + h カーソルの左側一文字削除

 Ctrl + d カーソルの右側一文字削除

 

ターミナル→エディタ 

※エディタに戻るときに別のファイルが選択されるので適宜調整

Ctrl+1

 

エディタ→ターミナル 

 Ctrl + Shift + @

 

エクスプローラーの移動

command + shift + E

 

ソース管理(git)への移動

shift + control + G

 

 

Python Django3 超入門5

引き続き書籍の続きを進めていきます。

 

書籍

 P103 ~ 132

ほとんどコントロールの紹介だったので進度は大きくないです

 

実装

 1 djangoのフォームを使用するように編集

forms.pyを編集

 widgetを使用する

 

index.htmlの編集

 もともとテーブルを使用していたものを削除

 

2 viewクラスの定義

コンストラク

 self.paramsの初期化

get

 何もせずにself.paramsを返す

post

 入力された値をメッセージに組み込んで返す

 

3 その他のフォームについて

本書籍で色々なフォームの説明や実装などありますが割愛します。

その都度調べていけばいいかなと思うのと

早く次に進めたいからですね(笑)

 

 

 

  • 書籍

www.amazon.co.jp

 

github.com

Python Django3 超入門4

引き続き書籍の続きを進めていきます。

 

書籍

 P88~102

 

実装

 1 既存のformを使用する

formを使ってみています。

index.html
<form action="{% url 'form' %}" method="POST">
{% csrf_token %}
<div class="form-group">
<label for="msg">message: </label>
<input id="msg" type="text" class="form-control" name="msg">
</div>
<input class="btn btn-primary" type="submit" value="click">
</form>

こちらの方法でformを実装しました。

method="POST"

postで値の送信

 {% csrf_token %}

こちらの記述はリクエスト偽造を防ぐもの ※cross-site request forgeries

書籍を参考にして入れているだけなので詳細は割愛します。

 

view.py
def index(request):
    params = {
    'title':'hello/index',
    'msg':'お名前は?',
    }
    return render(request, 'hello/index.html', params)

def form(request):
     msg = request.POST['msg']
    params = {
    'title':'hello/Form',
    'msg':'こんにちは、' + msg + 'さん。',
    }
    return render(request, 'hello/index.html', params)

python側の処理です。

msg = request.POST['msg']

 こちらの記述でindex.htmlの

<input id="msg" type="text" class="form-control" name="msg">

こちらの値を取り出します。

 

request.GET = クエリパラメータから値を取り出す

request.POST = フォームから送信された値を取り出す

 

urls.py
urlpatterns = [
path('',views.index, name='index'),
path('form',views.form, name='form')
]

関数の登録処理を追記

 

2 djangoのフォームを使用する

アプリケーション名のフォルダの直下にforms.pyファイルを作成する

forms.py
from django.forms.fields import CharField

class HelloForm(forms.Form):
name = forms.CharField(label='name')
mail = forms.CharField(label='mail')
age = forms.IntegerField(label='age')

CharField = テキストを入力するフィールドクラス

IntegerField = 整数の値を入力するためのフィールドクラス

 

views.pyの編集

POST送信の場合はformを返すように修正

 

3 フォームを縦に表示するように修正

{{ form.as_table }}

上記の記述でpython側から送られるフォームを横並びになっているものを縦に変更

 

  • 書籍

www.amazon.co.jp

 

github.com

Python Django3 超入門3

引き続き書籍の続きを進めていきます。

 

書籍

P75〜88

実装

1 render関数の第三引数にparams(配列)を渡す

index.html側の変数に設定した変数の値を表示できるようになる

 

2 リンクの作成

同じページでテキストを変えたものを表示することで別のページに遷移しているように見せる

htmlの要素に{{hoge}}このような表記で変数を定義することが可能

rendere関数の第三引数にキー(変数)とバリューを渡すことで実現可能

 

3 静的ファイルの追加 ※css

プロジェクト→アプリケーション→static→アプリケーション名→css

上記の構成でディレクトリを作成

cddの中にstyle.cssファイルを作成

 

index.html側でcssを読み込むように修正することでcssが適用される

テンプレートファイルを利用する場合はhtmlの先頭で

{% load static %}

こちらの記述が必要

linkタグで

<link rel="stylesheet" type="text/css"
href="{% static 'hello/css/style.css' %}" />

読み込みを行う

 

4 bootstrapを使う

<link rel="stylesheet"
crossorigin="anonymous">

上記の記述でCDNと呼ばれるサービスを使用する

※Content Deliverly Network

 

  • 書籍

www.amazon.co.jp

 

github.com

Python Django3 超入門2

引き続き書籍の続きを進めていきます。

 

  • 書籍

www.amazon.co.jp

 

github.com

 

書籍

 66~74

 

実装

urlのパターンが変わっても値を取得できるように修正

setting.py

 INSTALLED_APPS(配列)にアプリケーションを登録する記述を追加

tempateフォルダの作成

 こちらにアプリケーションの処理などを入れていく

サンプルページの作成 

 

今後の進め方 

  • まずは意味がわからなくてもとりあえず進めて作ってみる
  • 現在は上記書籍のchapter2を進めているので終わったあとはまとめの記事などを作ろうかと思います。
  • ソースはgitで管理 こちらも詳しいことは分かりませんが習うより慣れろ

Python Django3 超入門1

積み重ね、できたこと

 

  • 書籍の購入

www.amazon.co.jp

 

  • 書籍の環境構築を進める

書籍

 1〜65ページまで進める

インストール

 python

 vscode

 Django

実装

 プロジェクトの作成

 ローカルサーバーの実行

 helloworldの出力

 urls.pyの編集

  http://localhost:8000/hello/

  上記のアクセスをした際に一番下の階層のurls.pyで処理を行なっていたがhello階層のファイルに処理を投げるように変更

 

まだまだ理解が完全にできていないまま進めているので支離滅裂だがとにかく進めていくことで続けることモチベーションを維持することを目標に進めていきます。