THUMBS SHIFT→

このブログは主に親指シフトを用いて書かれています

python

Djangoの設定のベタープラクティス

Djangoをデプロイする時の設定です。ベストプラクティスじゃなくて(そのままよりは)ベタープラクティスです 絶対に漏れ、抜けがあるので参考程度に見てください。公式を見るのが最も安全です。 settings.pyの分割 Djangoの本番/開発設定を切り分けるにはse…

django-herokuは何をやっているのか

django-herokuに頼らず自分で設定していきたいので、まずはdjango-herokuが何をやっているか確認していきます。 github.com 環境変数という語がでてきますが、これはherokuのダッシュボードもしくはCLIから割り当てられる変数で、(おそらく)セキュアです。…

poetryでnpm runしたいならtasks.jsonを使えばいいじゃない

pipenvは死んだからpoetryを使おうという記事を先日かいたけど、どうにもpoetryはpipenv runとか、npm runの代替となる機能がないらしい。 poetry runはあるけど、後ろのコマンドを全部手入力しなきゃいけなくて、poetry run <ユーザー定義スクリプト>はでき…

djangoのコマンドでbashの補完を効かせる

sudo curl -o /etc/bash_completion.d/django https://raw.githubusercontent.com/django/django/master/extras/django_bash_completion echo "source /etc/bash_completion.d/django" >> $HOME/.bashrc ソース でdjango-adminとmanage.pyの補完が効くはずな…

poetryこと始め

pipenv はもはや死んだ*1ので、poetry使っていきます。 インストール curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python です。 RuntimeWarningが出る場合 /root/.poetry/lib/poetry/_vendor/py2.7/subproce…

pipが壊れたので、パッケージを削除したら直った話

久しぶりにpython触ったら、Pipenvは開発が停止し(issue見る限り頑張ってはいるけど追いついてない印象。まだ開発やってる〜〜?^^ってのが5つは立ってる)、PoetryやPyflowとか言う新参者が幅をきかせはじめているとかいう、魑魅魍魎が跳梁跋扈している状…

create-react-appを使ってるプロジェクトでGithub Actionsを使うときのポイント

create-react-appはnpm|yarn testしたときにデフォルトで--watch --onlyChangedオプションを付けちゃう。そのためGithub Actionsでテストすると、タスクが終了しないので、ハングアップしてテスト続行不可になる。 By default npm test runs the watcher wit…

pythonで実験の測定値の確度を求める

def acc(value: str, rdg: float, dgt: int): error = float(value) * rdg / 100 after_dp = value.split('.')[-1] if after_dp: len_after_dp = len(after_dp) lsd = dgt * 10 ** -len_after_dp return round(error + lsd, len_after_dp) レポート中に苦し…

django-heroku をインストールするときにエラーがでる(ubuntu)

エラーメッセージが ERROR: Complete output from command python setup.py egg_info: ERROR: running egg_info creating pip-egg-info/psycopg2.egg-info writing pip-egg-info/psycopg2.egg-info/PKG-INFO writing dependency_links to pip-egg-info/psyco…

pythonでリストをn要素の配列に分割する

def divide_list(list_, n): """ divide list into sub-list which have n elements.Reminder is appended to it. Args: list_ (list): list to divide n (int): number of elements which sublist has Returns: list: divided list.It's length is len(list…

tensorflowでGPUが使われているか確認する

tensorflow-gpuのインストールは GPU support | TensorFlow を参照してください。アメリカ語が読めない人は機械学習は無理です諦めてください。 で、正しく使われているか確認したい時は >>> import tensorflow as tf >>> tf.test.is_gpu_available() True …

django で自分で作ったファイルをダウンロードさせる

どういうときの話? 例えばユーザーの入力によって動的にファイルを作り、そのファイルをModelのデータベースに保存1させつつ、ユーザーにダウンロードさせたいとき 下準備 # @settings.py MEDIA_ROOT = os.path.join(BASE_DIR, 'media/') MEDIA_URL = '/med…

migrate-exblog 2.0.0をリリースしました

github.com 知らない人向けに説明すると、これはエキサイトブログにははてなブログのようなエクスポート機能が無いので、スクレイプして他のブログに移行できる形式に変換するプログラムです。 今までの、単体テストも無くて、パラメータの設定の仕方も気持…

pythonプロフェッショナルプログラミングを(大体)読んだ

読んだ。kindleで買ったら800円くらいポイントが付いてきたのでラッキー。 個人開発で限界を感じてる人におすすめ。 Pythonプロフェッショナルプログラミング 第3版作者: 株式会社ビープラウド出版社/メーカー: 秀和システム発売日: 2018/06/12メディア: 単…

pythonで画像をbase64エンコードしてimg タグに埋め込む

import base64 as bs from pathlib import Path IMG_TAG = '<img src="data:image/jpg;base64,{base64}"/><br>' image_path = Path('path/to/somewhere') def make_base64_tag(image_path): with image_path.open('rb') as f: enc = bs.b64encode(f.read()) enc = enc.decode() return IMG_TAG.format(base64…

エキサイトブログをMovable Type形式でエクスポートするツールを公開しました

github.com タイトルの通りです。エキサイトブログにあった部活のブログを移行する際にまさかのエクスポート機能がないという糞仕様だったので自分で書いたのを改変して公開しました。なにがムカつくってインポート機能はあるところだよな。そういうとこやぞ…

pythonではてなAPIを使って記事を投稿する

色々認証方式があるけど一番簡単なBASIC認証でやる template = """ <entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app"> <title>{title}</title> <author><name>name</name></author> <content type="text/plain">{body}</content> <updated>{date}</updated> </entry>

requestsでUnicodeEncodeErrorがでたけど何でも良いから送信したい時

python のrequestsの話です。 import requests r = requests.post(url, data=str) >> UnicodeEncodeError ... となってしまった時は r = requetsts.post(url, data=str.encode('utf-8', errors='ignore') とすればよろしく無い文字を無視してPOSTしてくれる。…

mezzanineのチュートリアル"A Mezzanine Tutorial, Take 2"の覚書

元サイトがやってることの流れ(多分) part1 part2 part3 part4 part1 Pagedown, a Mezzanine Markdown Package part2 Generate Pygments css part3 Modify Search Remove Left and Bottom Menus Make Home Page CMS Editable part4 最近python製のCMS(word…

djangoチュートリアル その3、その4

その3は正直言うことない。ただurls.pyにnamespacceを追加して逆引きでURLを指定するときに'namespace: name'ってコロンで区切るのを忘れることが多いのでモジュールのインポートと同じように . で区切ればよかったんじゃないだろうか。 その4汎用ビューが…

djangoチュートリアル その2

先生!migrateとmakemigrationsの違いがわかりません。それはそれとして ForeignKey & ManyToManyFieldの使い方 class Tag(models.Model): tag_name = models.CharField(max_length=128) class Article(models.Model): tag = models.ManyToManyField(Tag) ti…

django チュートリアル その1

確認したらdjangoのバージョンが古かったのでpipでアップデートできないかなと 色々いじってみたけど俺の知識じゃ綺麗に解決できなかったので公式ドキュメントかどっかにあった再インストールする方法でアップデートした $ pip uninstall django $ pip insta…