flabaka blog

2020年5月

django Tips

Djangoの組み込みフィルタリファレンスのdateを使ってみる

DjangoのDateTimeFieldを使ってデータベースに作成した日時を入れて、テンプレート側で取り出す際に、日付のフォーマットを変更したいなっていう場合、組み込みフィルタのdateを使ってあげると良いみたい。

組み込みフィルタを使わない場合

{{ blog.created_datetime }}

テンプレート側でこんな感じで記述すると、settings.pyのLANGUAGE_CODEをjaに設定していると、2020年5月28日21:47 みたいに値をそのまま表示出来ます。

でも、年月日だけ取り出したいって場合は、どうするんだ? って。

Djangoの日本語ドキュメントを見てみる

日本語ドキュメントを眺めていたら、組み込みフィルタリファレンスにdateが掲載されていたので、試してみました。

日付フォーマットいろいろ

{{ blog.created_datetime | date:”D d M Y” }}

利用可能フォーマット文字の下にある例を試してみると、木 28 5月 2020 と表示される。

{{ blog.created_datetime | date }}

次にdateだけを試してみると、2020年5月28日 と表示された。

プリセット各種

{{ blog.created_datetime | date:”DATE_FORMAT” }}

フォーマットにはプリセットも用意されているみたいなので、まずは”DATE_FORMAT”を使ってみると、2020年5月28日 と表示された。

{{ blog.created_datetime | date:”DATETIME_FORMAT” }}

“DATETIME_FORMAT”を使うと、2020年5月28日21:47 と表示された。

{{ blog.created_datetime | date:”SHORT_DATE_FORMAT” }}

“SHORT_DATE_FORMAT”を使うと、2020/05/28 と表示された。

{{ blog.created_datetime | date:”SHORT_DATETIME_FORMAT” }}

“SHORT_DATETIME_FORMAT”を使うと、2020/05/28 21:47 と表示された。

区切り文字を変更したい

区切り文字を、日本語(年月日)やスラッシュ以外にしたい場合はどうすんの? って思っていたら、フォーマットはPHPのdate()関数に似た書式を使えるってあったので…

{{ blog.created_datetime | date:”Y-m-d” }}

こんな感じで書いてあげると、2020-05-28 と表示された。

他にも出来そうなので、色々試してみたいと思います。


django Tips

GitHubからPythonAnywhereへのデプロイの設定でハマる

Django Girls Tutorialのデプロイ設定で…

Django Girls Tutorialのデプロイ設定で、ハマった箇所がありました。

GitHub からアプリを自動的に構成するためのヘルパーを実行します。 PythonAnywhereのコンソールに次のように入力します(GitHubからクローンするときのURLと一致するように、<your-github-username>の代わりにご自身のGitHubユーザー名を使用することを忘れないでください):

https://tutorial.djangogirls.org/ja/deploy/

という箇所の下に書かれていたコード。

$ pa_autoconfigure_django.py --python=3.6 https://github.com/<your-github-username>/my-first-blog.git

これは改行を入れずに、一行で書かなければ駄目だったぽい…

$ pa_autoconfigure_django.py --python=3.6
https://github.com/<your-github-username>/my-first-blog.git

モニタ上ではこのように見えたので、(コードをコピペではなく)3.6と打った後でreturn、そしてgithubのURLを打ち込んだら、No such file or directoryと表示され、先に進めなくなってしまいました。

あ〜、素直にコピペすれば良かった…


django Tips

Visual Studio CodeとpipenvでローカルにDjangoの開発環境を作ってみる

参考にさせて頂いた記事

ひとまずHomebrewで

以前にbrewでpythonをインストールしているので、アップグレードを実行。(現時点では、3.7.7が最新っぽい)
pipenvは上記の記事の方法で、インストール済み。

brew upgrade python

//環境変数=trueの設定を、bash_profileに記述しておく
echo 'export PIPENV_VENV_IN_PROJECT=true' >> ~/.bash_profile

//書き込まれたか確認する
cat ~/.bash_profile

あとはVisual Studio Code側で行いたいので、ターミナルは閉じておく

Visual Studio Codeで

適当な場所にtest1というフォルダを作成し、Visual Studio Codeを立ち上げ、フォルダを開くからtest1を選択しておく。

拡張機能をインストール

pythonの機能拡張をインストール

拡張機能から、pythonをインストールする

Visual Studio Codeのターミナルを起動

pipenv install

.venvフォルダが、同一階層に作成される。(.bash_profileに設定した記述がちゃんと適用されている)

.venvが作成された
pipenv install django
pipenv shell
pip list

(test1) bash-3.2$ pip list
Package    Version
---------- -------
asgiref    3.2.7
Django     3.0.6
pip        20.1.1
pytz       2020.1
setuptools 46.4.0
sqlparse   0.3.1
wheel      0.34.2 

次にプロジェクトを作成する

django-admin startproject hoge
hogeというプロジェクトを作成
cd hoge
python manage.py migrate

settings.pyを開いておく

hogeプロジェクトの中にあるsettings.pyを開いておく

デバッグツールを選択する

虫のマークをアイコンを押して、

歯車の下あたりをクリックする

歯車の下の赤枠の辺りをクリックする

interpreterを選択

interpreterを選択するリストが表示されるので、今回は一番下を選択

青色のリンク文字をクリック

launch.jsonファイルを作成しますというリンクをクリックする

デバッグのconfiguration

するとデバッグのConfigurationのリストが表示されるので、Djangoを選択

manage.pyへのパスを記述

manage.pyへのパスを記述するダイアログが表示されるので、${workspaceFolder}/hoge/manage.pyと入力し、returnを押す。

workspaceFolderは今回でいうと、test1になる。

{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Django",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/hoge/manage.py",
            "args": [
                "runserver",
                "--noreload"
            ],
            "django": true
        }
    ]
}

上記の内容のlaunch.jsonファイルが、作成される。

settings.pyファイルに以下の内容を記述

LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'

保存し、F5を押す。

デバッグに成功

URLが表示されるので、日本語表示のロケットの画面を確認する。
ひとまずここまで出来た。


nginx Tips vps

WordPressのテーマファイルを、さくらVPSのGitでバージョン管理してみる

WordPressのテーマフォルダを、さくらVPSのGitでバージョン管理してみようかな~と思い立ったんですが、ハマったことがあったので、忘れないように残しておこうかと…

とても参考になった記事

こちらの記事を読んで、一通りやってみました。
自分の場合は、WordPressのテーマフォルダ以下をGitのバージョン管理対象に置きたかったので、多少異なりますが…

// 上記の記事と同じく、home/flabakaにリポジトリを設置する
cd /home/flabaka
mkdir repos
cd repos
mkdir flabaka.git
cd flabaka.git
git init --bare --shared

今回、WordPressのテーマフォルダ名がflabakaなので、gitのディレクトリ名も同名にしてみました。
ちなみにここで設定したディレクトリ名が、後にpullした際に作成されるディレクトリ名になります。
次に公開ディレクトリに移動して、クローンするんだけど…

//公開ディレクトへ移動
cd /公開ディレクトリ/wp-content/themes/flabaka/
git clone /home/flabaka/repos/flabaka.git

wp-content/themes/flabakaのフォルダ内は、空っぽにしておきます。
で、SourceTreeとかターミナルから、ファイルを登録→コミット&PUSHしておきます。

// pullしてみる
//↓ディレクトリ移動する必要がなければ、省略
cd /公開ディレクトリ/wp-content/themes/flabaka/
git pull

これを実行すると、themes/flabaka/flabaka/となってしまって、フォルダ毎pullしてきてしまいます。
フォルダ以下(functions.phpなどのファイル)だけ取得したい場合どうすんのって?

一つ上の階層にすれば解決?

clone設定するパスを、wp-content/themes/flabaka/ではなく、wp-content/themes/にすれば、フォルダ毎pullしてきても、wp-content/themes/flabaka/になるからいいのかも? とか思ったけれど、clone設定する際にはディレクトリを空にしておかなければ駄目。

テーマフォルダ内にはデフォルトで、twenty〇〇とかが存在しているので、どうしたものかと…

cloneする際のパスの設定を変更すれば解決!

とても参考になった記事

なるほど~ってことで、公開ディレクトリに移動してクローンする際の設定を変更します。

//↓ディレクトリ移動する必要がなければ、省略
cd /公開ディレクトリ/wp-content/themes/flabaka/
#git clone /home/flabaka/repos/flabaka.git //この記述を変更する
git clone /home/flabaka/repos/flabaka.git .
git pull

ディレクトリ名にカレントディレクトリ(.)を設定すると、必要なファイルのみpullしてくることが出来ました。

自動デプロイの設定

/home/flabaka/repos/flabaka.git/hooksフォルダ内にpost-receiveファイルがないので、フォルダ内のファルを複製&リネーム or 新規作成するなどして、自動デプロイの設定を記述すればOK。


Tips vps

yumを使ってphpMyAdminをインストールしてみたら…

yumを使ってphpMyAdminをインストール&ログインしてみたところ、以下のエラーが…

  1. 設定ファイルに、暗号化(blowfish_secret)用の非公開パスフレーズの設定を必要とするようになりました。
  2. $cfg[‘TempDir’](/var/lib/pypMyAdmin/temp)にアクセスできません。phpMyAdminはテンプレートをキャッシュすることができないため、低速になります。

暗号化(blowfish_secret)用の非公開パスフレーズの設定

usr/share/phpMyAdminフォルダ内にあるconfig.sample.inc.phpを複製→config.inc.phpとして、パスフレーズを設定するという記事があったので、

ls usr/share/phpMyAdmin

としてみたものの、config.sample.inc.phpがないと言われる…

その記事はzipファイルを展開して…というだったので、yumを使ってインストールした場合はパスが違うのかな? と思い、調べてみると…

CentOS6でyumインストールしたphpMyadminのエラーを消す

yumを使ってインストールした場合、やはりパスが違うとのこと。

ls /etc/phpMyAdmin

config.inc.php、発見。

blowfish_secretに値は設定済み→(設定済みだけど)エラーは出ている→パーミッションを変更してあげると、エラーは消えました。

$cfg[‘TempDir’](/var/lib/pypMyAdmin/temp)にアクセスできません。

tempフォルダを作成してあげればいいとの記事があったので、早速試してみる。

ls /var/lib/phpMyAdmin

tempフォルダは存在していたので、これもパーミッションの問題かな? と思い、(blowfish_secretと同じ様に)パーミッションを変更すると、このエラーも消えてくれました。