TechMemoまとめ(2018/03/15更新)
TechMemoカテゴリの記事を後々見返すとき用のまとめ記事です。
【CentOS】公開鍵認証方式を用いて ssh接続をする方法
暫くぶりの更新です。実のところ結構長期間ハマっていたネタがようやく昨日になって解決しましたのでここに簡単にまとめます。
出典はこちら。
www.conoha.jp
www.conoha.jp
【Python/Django】「はじめての Django アプリ作成、その 1」の逐次解説(1)
一通り写経をやって慣れてきたので、今度は公式のドキュメントに挑戦してみます。といってもチュートリアルですが。逐次解説的なものをやっていきたいと思います。
はじめての Django アプリ作成、その 1 | Django documentation | Django
Django のドキュメントは、未翻訳の箇所がチラホラあったりするので、そういうところを補う意味でもやっていこうかと。
このチュートリアルでは簡単な投票アプリ(poll)を作成するようです。
Poll アプリケーションは 2 つの部分からなります:
はじめての Django アプリ作成、その 1 | Django documentation | Django
- ユーザが投票したり結果を表示したりできる公開用サイト
- 投票項目の追加、変更、削除を行うための管理 (admin) サイト
前者は基本的にソースをシコシコ書いていくもの、後者は Django の標準的な機能として持っている部分になる。
Django は既にインストール済み として説明を進めます。
はじめての Django アプリ作成、その 1 | Django documentation | Django
Python の開発環境やDjango のインストールに関してはこちらの記事を参照のこと。
yohichidate.hatenablog.com
yohichidate.hatenablog.com
インストールされているバージョンを確認するにはこちらのコマンドをCLI上で実行すればOK。
python -m django --version
現時点で導入されている Django のバージョンが「2.0.1」のように表示される。
This tutorial is written for Django 2.0, which supports Python 3.4 and later. If the Django version doesn't match, you can refer to the tutorial for your version of Django by using the version switcher at the bottom right corner of this page, or update Django to the newest version. If you're using an older version of Python, check どのバージョンの Python でどのバージョンの Django が使えますか? to find a compatible version of Django.
はじめての Django アプリ作成、その 1 | Django documentation | Django
(私訳)
このチュートリアルは Django 2.0 向けに書かれています(Django 2.0 は Python 3.4以降をサポートしています)。
もし Django のバージョンが 2.0 と異なる場合、チュートリアルページの右下にある「バージョンスイッチャー」(「Documentation version: 2.0」となっているボタン)を使用して、使用しているバージョンの Django チュートリアルを参照するか、または Django を最新のバージョンにアップデートしてください。
もし古いバージョンの Python を使っている場合、「どんなバージョンのPythonでどのバージョンのDjangoが使えますか?」をチェックして、対応しているバージョンの Django を探してください。
(補足)
基本的には先に述べたインストール方法を用いて仮想環境を立てて、そこでやればそこまでややこしくない。というか、Ubuntuとかだと、標準で入っているPythonが2.xx系だったりして、そこに依存するものがあると非常に面倒なことになるので、基本的にはPythonやDjangoで何かを作ってみるときには仮想環境に分離した方が面倒が少なくて済む。
遠くない未来、標準でインストールされるPythonも3.xx系になるだろうけど、それまでは pyenv や virtualenv を活用した方が良い*1。
一方で、Windows 環境でやる場合にはあまり悩まず Python3.xx 系を入れて*2、venv を使っても良いのかも知れない。
*1:モダンなやり方で言えば、Python3.3 以降に標準で導入されている venv を使った方が勿論良いのだろうけど、標準が2.xxになっている環境では非常に面倒ではある
*2:そもそも Windows には Python が標準で導入されていないので、既存のシステムに対する依存問題はあまり考えなくて良い
【Python/Django】Djangoのurls.pyでinclude()を使うとnamespaceが指定できない問題の解決法(2018/02/10追記)
(2018/02/10追記:Django の公式チュートリアルの記述してある実装方法を追記)
よく有るチュートリアルどおりに実装したのに、urls.pyのところでこんなエラーが出ることがあったり。
Specifying a namespace in django.conf.urls.include() without providing an app_name is deprecated. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and app_name instead
昨日の更新でinclude()でnamespaceを実装せずに逃げたわけですが、解決法があった模様。
続きを読む