2018年1月8日月曜日

ひさしぶりのPythonで Djangoしてみるための参考サイトとメモ


環境

  • Amazon Linux 2
  • Python 3(現時点で3.6.4)
  • Django(現時点で2.0)


参考サイトとメモ

Pythonの復習とバージョン3のキャッチアップ

Pythonの基礎の基礎の基礎 - Qiita
Python3基礎文法 - Qiita
Python2からPython3.0での変更点 - Qiita
with構文とは何なのか - 年中アイス

Amazon Linuxで環境構築

Amazon LinuxでPython3系を使う - Qiita
  • Apacheは別途(先に)yumで入れた
  • pipもできるようになった
  • 今回は別にpyenv使わなくても、yumでpython3を入れれば良かったかも

Djangoでサンプルアプリを作りながら全体像を把握する

ほぼコピペで進めるが(おそらくDjango2で試した影響で)いくつか読み替えをした。

Djangoを最速でマスターする part1 - Qiita
(参考(github) gragragrao/manager_project: 「Djangoを最速でマスターする」ための参考レポジトリ
from manager.models import *
python manage.py runserver 0:8000
ALLOWED_HOSTS=[‘*’]

Djangoを最速でマスターする part2 - Qiita
  • Debug ToolbarのINTERNAL_IPSはApacheのリバプロとかあるから変えるかと思ったけどそのままでいけた
  • python shellのログインユーザー登録でWarningが出たけど、とりあえず無視...
/usr/bin/.pyenv/versions/3.6.4/lib/python3.6/site-packages/django/db/models/fields/__init__.py:1365: RuntimeWarning: DateTimeField Person.birthday received a naive datetime (2018-01-04 00:00:00) while time zone support is active.
  • view.pyのCustomLoginViewの下記はメソッドじゃなくなったみたい
if self.request.user.is_authenticated(): #'bool' object is not callableと怒られる
if self.request.user.is_authenticated:
  • login.htmlはGithubからコピーした
  • hijackは下記エラーでうまくいかなかったのであきらめた
ModuleNotFoundError: No module named 'hijack'
  • 自動テストはmodelとview(いわゆるMVCの"View"というより、Djangoのviewはどちらかというと"Controller"の方が近い感じか?)を対象にしていくようだ。templateのテストとなると言及されているSelenium(今ならHeadless Chrome?)とかと連携させていく?(参考 はじめての Django アプリ作成、その 5 | Django documentation | Django


Django1と2の違いを抑える

Django 2.0の変更点について - Qiita

そんなに変わらなそう。

Django公式チュートリアルでアプリを作成しながら学ぶ

さぁ始めましょう。 | Django documentation | Django / はじめての Django アプリ作成、その 1~7

普通は先にこっちをやるんだろうけど、公式は丁寧な分だけ全体像が見えてくるまでに時間がかかる。コピペでいけばエラーも出ないから、Python/Djangoに慣れるには、公式じゃないのでエラーにつまずきながら進めた方がいいこともある。
Ruby On Rails と違って、マイグレーションは完全にモデルのファイルから生成されます。マイグレーションは本質的には単なる履歴です。 Django はデータベースのスキーマをアップデートしながら履歴を進んでいき、現在のモデルに合致させることができます。
  • Django adminは便利そう。(参考 はじめての Django アプリ作成、その2 | Django documentation | Django
    settings.pyでLANGUAGE_CODEを'ja'にしたら日本語化された。システムよりの人が使うなら、英語の方が混乱が無いか? エンドユーザーに渡すなら日本語化が手軽なのは便利。
    それにしても、adminっていう名前はもうひとひねりしても良かったのでは...。Pythonの文化なのかな?

アノテーションが気になるので調べた

Python と型アノテーション

現時点では...使わないかなぁ。


Pythonのインストーラについて

Python パッケージ管理技術まとめ (pip, setuptools, easy_install, etc)

いくつかかいつまむと、
  • pip: とりあえずこれを使っておけばOK。Python3.4以降ではPython本体に同梱されるようになった。(参考 Pythonで一番最初に入れるべきパッケージ setuptools と pip - Life with Python
  • setuptools: これを入れると付属するeasy_installが使えるようになる。
  • easy_install: 昔使った時はデファクトスタンダードっぽかったが、廃れたのか。
  • PyPI: the Python Package Index。自由にPythonのパッケージを公開できる python.orgのサイトで、easy_install・pipはここからパッケージを探す。

Amazon RDSのAurora(MySQL)につないでみる

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
python manage.py makemigrations <アプリ名>
python manage.py migrate

Django公式ドキュメントで仕様を学ぶ


いつか時間のある時に...

2017年6月10日土曜日

Excel2016の新規作成のテンプレートを設定する方法

Windows 10 + Excel 2016 への設定。



これの(1)をやる。

テンプレートの保存先が以前と変わっていて下記になっているので他サイトの古い情報に惑わされないように注意?
C:\Program Files (x86)\Microsoft Office\root\Office16\XLSTART


Book.xltxと同様にSheet.xltxも保存すると、シート追加時に適用される。

なお、手元の環境では(2)は試してないので、デスクトップやエクスプローラの右クリックからExcelを新規作成した場合はテンプレートが適用されない。



こっちの「起動時にスタート画面を表示していない場合」の設定も必要。



2017年6月8日木曜日

Laravelを Github + Circle CIで CIするまでの参考サイトまとめ


Laravel

前にメモしたリンク集。
floatingdays: 初めてのLaravel参考サイト
floatingdays: Laravelと Vue.jsのチュートリアル参考サイト

MySQL5.6以前だと出るエラーの対処方法。
他にもやり方はあるみたいだけど、ここのが公式?
Laravel 5.4: Specified key was too long error - Laravel News

テストを書くチュートリアル。
Laravel5.3以前の記事のようで、Laravel5.4からはページ遷移やページ内のテストは別途インストールが必要なLaravel Duskの管轄に変わったので、その部分は読み替えが必要。
Laravelでテストコードを書くためのチュートリアル - Qiita


Github

Githubを二要素認証にして、かつ、Githubへのpushをsshではなくhttpsでする方法。
ユーザー名とトークンの入力省略も。
https+アクセストークンを使ってGitHubのアカウントを使い分ける - Qiita

同じく入力省略について、こちらは.netrcに書く方法。
[Git][GitHub]GitHubにPushする際に認証失敗する | DevAchieve


Circle CI

DBまわりの設定。
seedはtest内でやるなら設定ファイルには要らないかも。
CircleCiでLaravelのMySQLを使ったテストを実行する - Qiita

APP_KEYをcircle.ymlに定義しないとエラーになるので書いておく。
エラーメッセージが分かりづらい → "RuntimeException: The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths."
Laravel アプリケーションを、 Circle CI 経由で AWS ElasticBeanstalk に自動デプロイ - Qiita

Circle CIで使えるPHPのバージョンの参考ページのリンクなど。
PHPプロジェクトにおけるCircle CIの設定 - Qiita

Circle CIからプロジェクトを削除せずにGithubからプロジェクトを削除すると、Circle CI側で削除できなくなる(ずっと読み込み中になる)。
対策は、Githubに同名のプロジェクトを作ればCircle CIから削除できるようになる。
相羽 大輔 (Daisuke AIBA)さんのツイート: "さっきの件、解決。CircleCIに登録したプロジェクトを削除するには「Project Settings > Stop Building on CircleCI」GitHub側で先に消すとCircleCIのプロジェクト設定が触れなくなるので注意。 #kzrb"

2017年5月28日日曜日

初めてのLaravel参考サイト

メモ。

試しにログイン周りを自動生成してみる。
Laravelの標準Authentication(Auth)の動きを調べてみる - Qiita

Specified key was too longというエラーが出たら。
Laravel 5.4: Specified key was too long error - Laravel News

RESTなAPIを作ってみる。微妙に古い?
開発の進め方きめごと - Qiita

次はこれかな。
Laravel 5.4でWeb APIを作る : アシアルブログ

ブログ アーカイブ

tags