学習記録

2020-02-09に作成

個人用の学習記録。成果がなくとも毎日更新。

所有者限定モードのためこのボードには投稿できません ボードとは?

ProgateのRuby 学習コース IIが終わった。

要素の数を取得するメソッドには3つ種類があることを知った。
lengthとsizeは同じエイリアス。countは条件付きで要素の数を数えることができる。
参考:https://qiita.com/motoki4917/items/ffc89d955e20b91d1014


PaizaのD問をRubyで解いた時に学んだこと

getsの返り値に改行が含まれる。

gets.inspect
=>"chocolate\n"

文字列を比較するとしたら、こうだろうか。
a=gets.chomp
a.eql? "chocolate"

Integerとto_i

Integerの引数は数値でなければ例外(改行コードは許容)を投げるが、to_iは引数に数値が含まれていれば値を返す。
参考:https://stackoverflow.com/questions/10093493/difference-between-integervalue-and-value-to-i/10093572#10093572

dangerous methods

chomp!の!が付く関数は"dangerous methods"と呼ばれ、呼び出し元のオブジェクトに変更を加える関数。
参考:https://stackoverflow.com/questions/612189/why-are-exclamation-marks-used-in-ruby-methods

識別子

小文字またはアンダーバー(_)で始まる変数は「ローカル変数」
@ で始まる変数は「インスタンス変数」
@@で始まる変数は「クラス変数」
ドル記号($) で始まる変数は「グローバル変数」
大文字で始まる識別子は「定数」
nilは未定義値
参考:http://www.tohoho-web.com/ruby/variables.html


4-1 ユーザー詳細機能の実装
ビューをクラス形式で記述する。
ビューでmodel = User と書くことにより、テンプレートでは {{ user.キー名 }}が扱える(モデル名を小文字にしたものが使える)ようになっている。


Pollアプリのチュートリアル
https://docs.djangoproject.com/ja/3.0/intro/tutorial04/#write-a-minimal-form

redirectやreverseが出てきたので、これらについて調べる。

Djangoのページ遷移メソッド reverseやredirectやrenderについて](https://teratail.com/questions/))


Django tutorialを続ける

Use the template system

_setはreverse related object lookup(逆参照)というらしい。なんでreverseなのだろう、今の場合“One to many の関係でoneから見て後ろ“ということだろうか。
https://stackoverflow.com/questions/42080864/set-in-django-for-a-queryset

related_nameを指定することで名前を変えられるようだ。
https://e-tec-memo.herokuapp.com/article/166/

urlテンプレートタグにパラメタを複数渡す方法
https://docs.djangoproject.com/en/3.0/ref/templates/builtins/#url


urls.pyのapp_nameについて調べている。

Djangoの名前空間 [name], [namespace], [app_name] の違いについて

pylint-djangoを入れた

VS CodeのExtensionsでPythonを追加したところ
linterからurls.pyについて「Unable to import 'django.urls'pylint(import-error)」が表示された。
下記の方法で対応してみた。

$ pip install pylint-django

してからVS Codeの設定で

    "python.linting.pylintArgs": [
        "--load-plugins=pylint_django"
    ]

を追加した。
参考:Djangoのmodel参照時のpylintの警告を出さないようにする


Pollアプリを作る - ビューを書く

polls/templates/pollsのように冗長?なフォルダ構成にしているのは名前空間をしてすることで、
他のアプリと同名のテンプレートを使えるようにするため。

読めなかった英語

  • get away with ~: ~せずに済ませる?
  • tackle: (課題に)取り組む

その他,気になったこと


今日の学習

Pollアプリを作る - DBの設定

疑問、分からないところ
- mysite/urls.pyに「path('polls/', include('polls.urls')),」を足すと、「"GET / HTTP/1.1" 404」のレスポンスが返るようになる。
- アプリケーションは最低1つデータベースのテーブルを使うので、使い始まる前にデータベースにテーブルを作る必要がある、らしい。なんで?

TIL(Today I Learned)を30日続けてわかった5つのことを読んだ

  • 「TILを毎日続けること」は手段であって目標にするべきでないということだろうか。
  • その日あったことを書くだけでなく、「理解したことをまとめるという行動」が必要。
  • 「新しい何かを発見すると、それが正しいと思いたい気持ちや欲のようなものが出てきがち」、わかる。

Pythonは少し下地があるので、Djangoを勉強し始めたい。
Djangoのチュートリアルを探すと仮想環境の構築から話が始まっている。
手元の端末にはpyenvとvirtualenvが入っているので、
これで良いだろうか。

virtualenvって何だっけ
virtualenvをactivateした状態でpip installすると仮想環境内に限定してパッケージをインストールすることができる。
virtualenvの状態を切り替え、pip freezeすることで確認できる。
なるほど


リモートワーカーの方からPHPよりもPythonやRubyの方が仕事を取り易いと言われ、
PHPの勉強を続けるべきか迷っている。
自分の決断力の無さよ・・・


ドットインストール勉強中
はじめてのPHP [macOS編] » #07 リンクボタンを作っていこう

<?php echo $hoge ?>

でなく

<?= $hoge ?>

と書けることを知った。


ProgateのPHP 学習コース IV 終了。
次はドットインストールの「はじめてのPHP」あたりがちょうど良いだろうか。


Progate勉強中
PHP 学習コース IV>ユーザーを追加しよう>12. ユーザーの情報を表示しよう


Progate勉強中
PHP 学習コース IV>ユーザーを追加しよう>10. Userのデータを作ろう

PaizaのD(スキルチェック)もPHPで解けた


Progate勉強中
PHP 学習コース III > 継承について学ぼう > 4. 継承