ワードプレスでスマホから画像付きで記事の投稿はできるのか?

 

どうも、りーずです。

 

ワードプレスでスマホから文章と画像の投稿が出来るかのテストです。

全てスマホのブラウザから行います。

まずはこちら。画像です。

ELECOM M-DUX50

ELECOM M-DUX50

いつも使っているマウス。

普通に、ワードプレスの『メディアを追加』を押して、写真を追加する事が出来ました。

キャプションも入れられますね。

メディアのサイズは、フルか中か、などが選べます。パソコンでやるように、マウスで細かくサイズ調整は出来ませんでしたが、『カスタムサイズ』という項目もあり、そこで縦横のピクセル数が入れられるので、数字を見ながら調整も割と行けそうです。

ということで、意外にもワードプレスはスマホ投稿が出来てしまう、という記事でした。

こちらが上の写真で載せた、僕の愛用しているマウスです。
これ無しでは生きていけません。

このように、『デスクトップ用Webサイトを表示』で、パソコンサイトのAmazonを開けば、Amazonアソシエイトリンクも取得出来ます。

今はiPhone6sを使っていますが、もう少し画面サイズの大きいスマホなら余裕で出来そうです。

ちなみに投稿時の欠点も発見しました。
それは、タイトルが見えなくなった部分をスクロールして見る事が出来ないことです。Simejiのスクロールでは右にいきませんでした。

1度全選択してからカットして書き直すしかないようです。

ここから右にいけません。

以上、検証記事でした。

この記事は全部スマホで書きました。

なかなか便利ですね。

機会があったらまた使っていきたいと思います。


※リンクはAmazonアソシエイトを利用しています。

Pythonで作ったスクリプトをexe化する方法。Pyinstallerで.exeファイルにしよう。【Windows10環境】

Pythonで作ったスクリプトをexe化する方法です。スクリプトをWindowsの実行ファイル(.exe)にします。

『pyhon.py→exe化→軽量化→高速化 忘備録(pyinstaller py2exe)』
https://medium.com/lsc-psd/pyhon-py-exe%E5%8C%96-%E8%BB%BD%E9%87%8F%E5%8C%96-%E9%AB%98%E9%80%9F%E5%8C%96-%E5%BF%98%E5%82%99%E9%8C%B2-pyinstaller-py2exe-4cd7c5f70c99

こちらの記事を参考にPythonで作ったスクリプトをexeファイルにしようとしました。


僕は、Pythonのバージョン管理システムはPipenv環境なので「pip」とするところはすべて「pipenv」にしています。各自読み替えて下さい。

・まずはpyinstallerをインストールする
まず

pipenv install pyinstaller

として、pyinstallerのモジュール(ライブラリ)をインストールします。

・次に、exe化したいPythonスクリプトファイル(.py)をexeに変換する

exe化したいスクリプトのファイル名をdo.pyだとすると

pyinstaller do.py --onefile

としてあげて、そのコマンドで作られたdistというフォルダの中に

do.exe

というファイルが作られれば完成です。

これで終わりです。

・コマンドプロンプトを出したくない場合は .py ではなく .pyw としてコマンドを実行する

実は、.pyをそのままexe化すると、プログラム実行時にコマンドプロンプトが起動した状態になります。
これでは気になる方がいると思いますので、その場合は元のスクリプトファイルの名前を

do.pyw

のように、拡張子を pyw にします。
そして

pyinstaller do.pyw --onefile

というコマンドを打つと、出来上がったプログラムファイルでは、コマンドプロンプトが起動しなくなります。ゲームやTkinterを使ったプログラムなどをexe化するときはこちらのやり方を使うと良いかもしれません。

以上です。


・おまけ

もし上記で、エラーが出た場合は、

コマンド実行後に

do.spec

というファイルが作られるので、そのファイルの中にある

hiddenimports=[]
という部分を

hiddenimports=['pkg_resources.py2_warn']

と変えてあげると良いそうです。
ちなみに、ここがポイントで、
'の部分は'(シングルクォート)だと思います(おそらく)。
分からなかったらこれをコピペして下さい。
キーボードでいうと、シフトキーを押しながら7のボタンを打つと出力される記号です。

そうしたら今度は

pyinstaller do.spec --onefile

と打つと、distというフォルダの中に

do.exe

という実行ファイルが出来上がるはずです。

以上で動きました。

何かの参考になれば幸いです。

参考:「パソコンのキーボードの記号の読み方」
http://tabotabo.my.coocan.jp/ccc/kigo.htm

「【Python】GUI表示におけるコンソール画面(コマンドプロンプト)を非表示にする方法」
https://genchan.net/it/programming/python/4183/

Pythonを使ってウェブ上から画像を半自動ダウンロードする方法

Pythonを使ってウェブ上から画像を半自動ダウンロードする方法です。

2020年の9月から、ジブリのホームーページ上で原画の場面写真が一般公開されています。

https://www.ghibli.jp/works/chihiro/

1つ1つダウンロードするのも手ですが、それだとなかなか大変です。

URLのパターンがパターン化されていたので、プログラムを組みました。

Pipenvでまずは環境を作りましょう。
詳しくはこちら

Pythonのバージョン管理をPipenvにした話。Windows10ではPipenvがベストプラクティスな気がする。

実際のプログラムは以下です。 続きを読む

Django3系でStripe決済処理を行う際にcsrftokenをviews.pyに渡す方法【Ajax】

Django3系において、Ajaxでcsrftokenをviews.pyに渡す方法です。

DjangoでStripe決済処理のチェックアウトを行う際にcsrftokenをviews.pyに渡す必要がありました。

しかし、csrftokenを用意していなかったためエラーが発生。CSRFトークンが見つからないよ!というエラーが出ていました。

これはDjangoがデフォルトではミドルウェアによってCSRF対策をしているためです。

そちらの解決方法です。

なんと普通にDjangoの公式に対応方法が書いてありました。
日本語訳は 続きを読む

RailsでHerokuのPostgreSQLからConohaのMariaDBデータベースサーバーに移行する方法

RailsでHerokuのデータベースであるPostgreSQL( Heroku Postgres)からConohaのMariaDBデータベースサーバーに移行する方法です。

ソングストーリー(https://www.songstory.me/)のデータベース数が1万行近くになり、移行が必要になりました。

今回はConoHaのMariaDB(月500円税込み)に移行したいと思います。
理由は、検討した中で一番安いからです。
データベースサーバーを1つ持っていれば違うサービスでも使えます。

基本料金月額500円/10GB。10GBあればテキストデータなら十分すぎると言えるでしょう。

(画像データや動画データは通常はオブジェクトストレージという専用のサーバーに入れます)

ということで、まず必要なのはバックアップです。

Heroku PostgresにHeidiSQLというデータベース接続ツールでアクセスします。
「HeidiSQL」
https://forest.watch.impress.co.jp/library/software/heidisql/

これは使った中では一番使いやすい無料のデータベース管理ソフトです。
ごく稀に固まりますがそこはご愛嬌。

さて、今回は
PostgreSQLからMySQL(MariaDB)への移行なのですが、ここで注意が必要です。 続きを読む

Railsで既存テーブルにカラムを追加した後に順番を変更したかったが上手くいかなかった。schema.rbファイルに設定を書いてしまい、それで良さそうならマイグレーションファイルもそれに合わせて書き直そう(とりあえずの荒業)

Ruby on Rails5で、既存のテーブルにカラムを追加し、そのあとにカラムの順番を変更したかったのですが、上手くいきませんでした。
それでもどうにかカラムを調整してデータベースを構築するための方法です。

結論から言うと、「schema.rbファイルに直接、データ構造の設定を書いてデータベースに反映させて、それで良さそうならマイグレーションファイルを書き直そう」をいう内容です。

今回の手法はとりあえずの荒業(あらわざ)です。
ただ、Railsの書籍『Ruby on Rails5アプリケーションプログラミング』に「スキーマファイルによるデータベースの再構築の方法(P.316)」が書いてあるので、あながち間違っている訳でもなさそう。鋭意勉強中です。

カラムの追加はハマりポイントでした。

・既存のテーブルにカラム(列)を追加したい
・マイグレーションファイルを作って…と思いきや(うまくいかなかった例)
・マイグレーションファイルに設定を書いて変更するのは諦めてschema.rbファイルに設定を書こう
・新しく、更新した部分のマイグレーションを修正しておこう
・その他もろもろ何かを行う手段など
・役に立ったリンク等
・Herokuで上記のデータベースをコマンドラインで構築する方法

このような内容でお届けします。

ちなみに今回の方法は、変更するテーブルのデータは消えてしまうので、テーブルを1から作り直すのとあまり変わりません。

みなさん、どうやって上手くやっているのでしょうか。
テーブルのカラムの順番を変更したいだけでかなり一苦労でした。

続きを読む

Pythonのバージョン管理をPipenvにした話。Windows10ではPipenvがベストプラクティスな気がする。

どうも、りーずです。

・Windows10でのPythonのバージョン管理はPipenvが良い
・Pipenvを使えるようにする手順
・Pipenvの使い方
・requirements.txtを作成する
・requirements.txtから仮想環境をpipenvで作る
・仮想環境を有効にしようとすると「このシステムではスクリプトの実行が無効になっているため、ファイル ~.venv\Scripts\activate.ps1 を読み込むことができません。」と出る場合
・まとめ

このような構成でお届けします。Pipenvは良いよ!というメモです。

pip install pipenv
pip list
pipenv --python 3.7
.venv/Scripts/activate
deactivate
pipenv install django==2.2
django-admin startproject プロジェクト名
django-admin startapp アプリ名
python manage.py runserver
pipenv lock -r > requirements.txt

今回実際に使うのは上記のコマンドです。


・Windows10でのPythonのバージョン管理はPipenvが良い

Windows10環境のPythonのバージョン管理でAnacondaを使ったり、Virtualenvを使ったり、素のPythonでpipを使っていたりしたのですが、最近はPipenvがDjangoなどの開発には向いているのではないかと思うようになりました。その理由を述べていきます。

最初はWindows10でAnacondaを使おうとしたのですが、使いたいライブラリがなかなか動かせなかったり、インストールの設定でどれがベストなのかが分かりにくかったり、pipコマンドと混ぜると良くない(?)などの情報があり、使わなくなりました。
一言でいうと初心者には難しいです。

その後、Udemyや海外のYouTubeのPythonの英語の動画を見ているとよく使われているvirtualenvを使っていました。

しかしvirtualenvはPythonのバージョンを切り替えられないという欠点がありました。
(Python3.6、3.7、3.8などを切り替えられない。)

そこで色々と調べた結果、Pipenvを使うと
・Pythonのバージョンそのものも管理(切り替え)が出来る
・個々のフォルダ内で環境を作り、アクティベートするとそのまま設定したものが使える

というように、やりたいことが出来る唯一のバージョン管理ツールでした。
これには非常に利便性を感じたので、Djangoなどのアプリケーションを作ったり、ちょっとしたプログラミングをするにはPipenvでいいかな、という結論になりました。

僕はAnacondaとの共存は諦め、とりあえずPipenvのみでやっていこうと思いました。

これらのツイートで貼っているリンクが参考にしたものです。


・Pipenvを使えるようにする手順

まず、使いたいPythonは、公式からダウンロードしてインストールしておきます。(重要)

Python3.8を使いたければそれをダウンロードしてインストール、Python3.7を使いたければそれをダウンロードしてインストール、という感じです。

Pythonのインストール先ですが、

C:\Python
というフォルダを作り、そこに

Python3.6.7の64ビット版は
C:\Python\Python367

Python3.8.5の32ビット版は
C:\Python\Python385-32

という感じに数字を割り振り、分かりやすいように名前をつけてインストールしていくと良いです。
Program Filesフォルダにインストールすると、空白でエラーになるような事があったので、気をつけましょう。

僕は、インストーラーでパスは通してインストールしました。

「パスが通っている/パスを通す」という日本語は、「Windows10のシステム環境変数のPathという変数に、設定がされているという意味です。これをすることにより、ターミナル上で、プログラム名を入れるだけでプログラムを実行することが出来るようになります。「python」というコマンドが動くのも、「パソコン上のどこにあるpython.exeを動かすかが指定されているから」です。)

参考:『「PATH を通す」の意味をできるだけわかりやすく説明する試み』
https://qiita.com/sta/items/63e1048025d1830d12fd

パスを通すと、『環境変数で一番上に来ているPythonのバージョン』がターミナル(コマンドプロンプト)のデフォルトになります。以下のようなイメージ。

3つのPythonをパスを通してインストールしている図。 この場合、実際にターミナル(コマンドプロンプト)で動くのは一番上のPython 3.85の32bit版になる。

もし、Windows10のターミナルコマンドで使いたいデフォルトのPythonのバージョンを変えたい場合は、システム環境変数の設定でそのバージョンを一番上に持ってくればOKです。
2行でセットなので、2行とも上に持っていきましょう。

ちなみに上の図で「使われない」と書かれているPythonも、以下のPipenvによって、仮想環境で使えるようになります。

・Pipenv(バージョン管理ツール)のインストール

さて、次はPipenvを入れなければいけません。

そして、これに限ってはPythonのどれかのバージョンに直接pipコマンドで入れる必要があります。
pipコマンドは
pip install ライブラリ名
で、PythonのライブラリをインストールできるPython公式のコマンドです。
ライブラリの管理に使います。

Pipenv(これもライブラリです)を入れるPythonのバージョンは、インストールしているPythonの最新のバージョンで良いと思います。

Pythonを入れているフォルダには「Scripts」という名前のフォルダがあり、どんなライブラリが入っているかを確認することが出来ます。

僕の場合は
Python3.8.5の32ビット版にPipenvを入れました。

まぁどれに入れても大丈夫だと思います。
現在pythonコマンドのパスが通っているものにしましょう。

では、実際にPipenvを入れてみましょう。まずはどのバージョンのPythonがターミナルで動いているか確認しましょう。

python --version

ここのPythonにPipenvを入れるので、バージョンは一応覚えておきましょう。
そうしたら、ターミナルで

pip install pipenv

と打ち、Pipenvをインストールします。現在パスを通しているPythonのバージョンのScriptsフォルダにインストールされます。

pip list

というコマンドで、インストールされたモジュール(ライブラリ)の一覧が表示されます。確認してみましょう。

もしうまくインストールされない場合は、Windows Power Shellのアイコンを右クリックして「管理者として実行する」で起動して、そこでコマンドを打ってみて下さい。

管理者権限でWindows Power Shellを起動する画面 。(タスクバーを縦に設定してるのは気にしないでください)

管理者権限でWindows Power Shellを起動する画面 。(タスクバーを縦に設定してるのは気にしないでください)

Cドライブ等にコマンドで変更を加える場合は管理人権限での実行が必要になる場合があるからです。

・システム環境変数を設定する
次に、環境変数の設定です。ここがポイントです。

『プロジェクトのフォルダ直下にPipenvの仮想環境が作られてほしい』ので、
新たに環境変数を設定します。

例えばプロジェクトのフォルダごと消去すれば、仮想環境ごと消せますし、プロジェクトフォルダに入ってターミナルでアクティベートコマンド(.venv/Scripts/activate)を実行するだけで、そのプロジェクトに設定した環境がすぐ立ち上がるようになります。

まずは、Windows10の左下の検索窓に『環境変数』と打ち込み、『システム環境変数の編集』画面を出しましょう。以下のようにして下さい。

Windows10の左下の検索窓に『環境変数』と打ち込む。

そうしたら、出てきた、『システム環境変数の編集』をクリックします。

※「環境変数を編集」をクリックすると「システム環境変数の編集」がグレーアウトするので注意。選ぶのは「システム環境変数の編集」です。

すると「システムのプロパティ」画面が出てきて
「環境変数」とクリックできる画面が出ます。そこで「環境変数」をクリック。

以下のように環境変数を編集する画面が出るはずです。

Windows10の環境変数(『システム環境変数』のほう)に「PIPENV_VENV_IN_PROJECT」という項目を作り、「true」という値を入れます。

以下の画像のようにします。

「システム環境変数」のなかに変数「PIPENV_VENV_IN_PROJECT」を作り、値を「true」にする

「システム環境変数」の「新規」で追加しましょう。

変数:PIPENV_VENV_IN_PROJECT
値:true

これにより、pipenvコマンドを使うとその各フォルダのルート直下に仮想環境が構築出来るようになります。

そうしたらパソコンを再起動しましょう。環境変数を反映させるためです。

・Pipenvの使い方

Pipenvの実際の使い方を説明します。
まず、仮想環境を作りたいフォルダ(プロジェクトフォルダ)を作ります。

そうしたらターミナルでその場所に移動し、そこで

pipenv --python 3.7

のように打ちます。(これは例なのでpython 3.8でも何でも良いです。)

こうするとその場所に仮想環境がPython3.7で構築されます。
(指定する「Python3.7」は手動であらかじめインストールされている必要があります。)

次に、

.venv/Scripts/activate

と打つと、アクティベートされます。

deactivate

で、ディアクティベートされます。

あとは自由に、djangoなどのライブラリを追加でインストールしていきましょう。
インストールする場合は必ず

pipenv install django==2.2

このように「pipenv install」とすることに気をつけましょう。
通常の「pip install」だと、おそらく仮想環境ではなく「今パスの通っているPythonの本体」にインストールされてしまいます。

また、仮想環境を消したい場合は「pipenv install」で作成されたファイルとフォルダを削除するだけでOKです。

.venv
Pipfile
Pipfile.lock

この1つのフォルダ(.venv)と2つのファイル(Pipfile、Pipfile.lock)です。

以上でPipenvの簡単な説明でした。

仮想環境を、Pythonのバージョンを指定して作成出来て、
それぞれのフォルダで仮想環境を作成&立ち上げられることが便利ですね。

使うときにはアクティベートのコマンド(.venv/Scripts/activate)を打つだけなので、どのPythonのバージョンで作ったかを覚えておく必要もありません。

アクティベート後にPythonのバージョンを確認したい場合は

python --version

で確認出来ます。
アクティベート後は普通のpythonコマンドで、その仮想環境のPythonが実行されるようになります。

ちなみに、djangoをインストールしたあとは
django-admin startproject プロジェクト名

のようにしてプロジェクトを作り
その中に入って
django-admin startapp アプリ名
でアプリを作り、
そのあとに
python manage.py runserver

としてから
http://localhost:8000/
(ローカルのサーバー。実行時にポート番号は8000と表示されるはず)
にアクセスしましょう。

参考:
「PipenvでDjango開発環境をつくる」
https://qiita.com/nochifuchi/items/4fe0164f0d8949cf11b7

・requirements.txtを作成する

requirements.txtを作成するには、
コマンドライン(ターミナル)で、

pipenv lock -r > requirements.txt

を実行します。

参考:「Pipenvことはじめ」
https://qiita.com/shinshin86/items/e11c1124e3e2e74556b8#requirementstxt%E3%81%AB%E6%9B%B8%E3%81%8D%E5%87%BA%E3%81%99

・requirements.txtから仮想環境をpipenvで作る

パターン1:Pythonのバージョンを指定したい場合

仮想環境のPythonのバージョンを指定したい場合は

最初に
pipenv --python 3.7(指定したいバージョン)
として、一番最初にPythonのバージョンを指定して仮想環境を作っておきます。
そして
.venv/Scripts/activate
で仮想環境に入り、
そのあとに requirements.txtのあるフォルダで
pipenv install
をします。そうするとそのPythonのバージョンとrequirements.txtの指定で環境が作られます。

パターン2:仮想環境のPythonのバージョンはpipenvのpythonで良い場合

Pythonのバージョンが、pipenvを入れてあるPythonのバージョンで良いのであれば、
requirements.txtから仮想環境をpipenvで作るには、そのディレクトリでそのまま

pipenv install

を実行すれば完了です。

一応「パターン1」のほうで明示的にPythonのバージョンを指定して作ったほうが良いとは思います。

参考:「requirements.txtからのインポート」
https://pipenv-ja.readthedocs.io/ja/translate-ja/basics.html#importing-from-requirements-txt


・仮想環境を有効にしようとすると「このシステムではスクリプトの実行が無効になっているため、ファイル ~.venv\Scripts\activate.ps1 を読み込むことができません。」と出る場合

Windows10のPowerShell(コマンドラインツール)では、スクリプトを実行するときに実行ポリシーを変更してあげないと、PowerShellを管理人権限で起動していても仮想環境を有効にできないことがありました。

.venv\Scripts\activate
コマンドを打つとエラーが出る場合です。

その場合はPowerShellを管理人として実行して、

> Set-ExecutionPolicy RemoteSigned

というコマンドを打つと、仮想環境を有効に出来るようになります。
一度設定すれば大丈夫です。

詳細は

「PowerShellでvirtualenvを使うには – Qiita」

https://qiita.com/ryu22e/items/520b35db6a444d8289da

こちらを参考にしてみて下さい。


・まとめ

まとめです。
pipenvの導入方法は
pip install pipenv
として導入。
プロジェクトのフォルダ直下にPipenvの仮想環境が作られてほしいので、システム環境変数の設定を必ず行う。

使い方は、
pipenv --python 3.7
で仮想環境を作成。
指定するPythonのバージョンはインストールされている必要がある。

仮想環境を作成したら
.venv/Scripts/activate
でアクティベート。
抜けるときは
deactivate
でディアクティベート。

あとは仮想環境に
pipenv install django==2.2
のようにして入れたいライブラリを入れていく。

(Djangoの場合はライブラリを入れたあとに
django-admin startproject プロジェクト名
このようにライブラリが用意したコマンドを打って、実際のコードを自動生成させていく。)

もしプロジェクトが要らなくなったらそのフォルダごと削除すればOK。


Pipenvについて、より詳しくは、

「Windows + Python + pipenv でらくらく開発環境構築」
https://qrunch.net/@toyocy/entries/Y2wBhjSWunnK0CPI

「Pipenvを使ったPython開発まとめ」
https://qiita.com/y-tsutsu/items/54c10e0b2c6b565c887a

これらの2つの記事が詳しいので参考にしてみて下さい。


おまけ

pipenvコマンドを使うと、

pipenv : Courtesy Notice: Pipenv found itself running within a virtual environment,
so it will automatically use that environment, instead of creating its own for any p
roject. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that envir
onment and create its own instead. You can set PIPENV_VERBOSITY=-1 to suppress this
warning.

という文が出ることがありました。そこで通知文のいうように環境変数に
PIPENV_IGNORE_VIRTUALENVS=1
を追加すると
python manage.py runserver
コマンドでdjangoを動かしたときにサーバーが停止出来なくなる挙動が出ました。
なので、現在はこの環境変数は設定していません。
まぁざっくり言うと、通知文は無視してOKということです。

参考:「pipenv で任意の場所の仮想環境を使う」
https://qiita.com/tonluqclml/items/cd0d2a2cb0197cbaee42


勉強中なので、なにか間違いがございましたらTwitterでリプを頂けると助かります。