自動化無しに生活無し

WEB開発関係を中心に備忘録をまとめています

  • 【Django】モデルを使用したフォームクラスで、required属性を付与する

    モデルを使用したフォームクラスは、モデルの制約に依存する。 そのため、モデルの制約がゆるくても、フォームクラスで引き締めたい場合、別途対策が必要になる。 フォームクラスにrequired属性を付与する class TopicCategoryForm(forms.ModelForm): class Meta: model = Topic fields = [ "category" ] #TODO:categoryの入力を必須化させる def __init__(self, *args, **kwargs): super(TopicCategoryForm, self).__init__(*args, **kwargs) self.fields['category'].required = True コンストラクタをオーバーライドすれば良いそうだ。 参照元: https://stackoverflow.com/questions/44810064/form-required-field-in-django-model-forms ...
  • 【Pandas】DataFrameをループして取り出す【列ごと、行ごとに取り出すにはdf.items()とdf.itertuples()でOK】

    よくあるpandasの行ごと、列ごとにデータを取り出す方法。 環境 Python 3.8.10 numpy==1.23.4 pandas==1.5.1 python-dateutil==2.8.2 pytz==2022.5 six==1.16.0 列ごとにループして取り出す .iteritems()は後のバージョンで廃止される可能性があるので、列ごとのループには.items()を使う import pandas as pd data = {} data["month"] = [ str(i)+"月" for i in range(1,13) ] data["page_view"] = [ i*1000 for i in range(12) ] data["earnings"] = [ i*100 for i in range(12) ] index = [ str(i) for i in range(12) ] df = pd.DataFrame( data, index=index ) ## 列ごとにループする for column_name, item in df.items(): print(column_name) print(item) print(item["0"]) print(item["1"]) print(item["2"]) index ...
  • OGP(Open Graph Protocol)情報から動画のサムネイル等を抽出する【Python使用】

    例えば、YouTubeなどの動画のURLをTwitterに貼り付けると、自動的にリンク先の動画のサムネイルが表示される。 これはYouTubeのHTMLに含まれるOGPという情報をTwitterが抜き取り、表示しているからだ。 OGPとは HTMLのheadタグに書く、metaタグでproperty="og:image"などの情報が含まれている。 参照: https://ogp.me/ 例えば、下記動画であれば、OG ...
  • 【Python】正規表現モジュールreでパターンに一致した文字列を全て取り出す・全て置換する

    正規表現は普段から使っていないと、いざという時にどうなってたっけってなる。 だから備忘録としてまとめておく。 とりわけ、Pythonの正規表現モジュールreのメソッドはいろいろあるので、実用的な物に絞っておく。 全て取り出す 返り値はリスト型で出る。 import re target = "n1o2a3u4t5o-6n7o8li9f0e9.com" #数値を取り出す result = re.findall(r'\d', target) if result: print(result) #取り出した数値を連結する。 print("".join(result)) else: print("マッチなし") 全て置換する import re target = "n1o2a3u4t5o-6n7o8li9f0e9.com" print(target) #数値を置換す ...
  • 【Ubuntu】tesseractをインストールして、Pythonから画像の文字起こし(OCR)を試す【pytesseract】

    環境 Ubuntu 20.04 Python 3.8.10 Tesseract Open Source OCR Engine v4.1.1 with Leptonica 今回使用したPythonライブラリ packaging==21.3 Pillow==9.2.0 pyparsing==3.0.9 pytesseract==0.3.10 UbuntuへTesseractのインストール sudo apt install tesseract-ocr libtesseract-dev libleptonica-dev tesseract-ocr-jpn tesseract-ocr-jpn-vert tesseract-ocr-script-jpan tesseract-ocr-script-jpan-vert 日本語のOCRもできるように訓練済みのデータもインストールしている。 tesseract-ocr-jpn tesseract-ocr-jpn-vert tesseract-ocr-script-jpan tesseract-ocr-script-jpan-vert Tesseractの動作確認 以下画像をdjango.pngと名付けて解析してみる。 tesseract django.png output -l jpn ファイルはoutput.txtに出力される。出力結果はこうなった。 以下、流れ。 1. プロジェクトを作 ...
  • Ubuntu、WindowsにSeleniumで使用するFirefox用のgeckodriverをインストールする【Python】

    Seleniumとは? Seleniumとは、ウェブブラウザの操作を自動化するツールのひとつ。 とりわけ、Pythonライブラリとしても提供されている。(JavaやRuby用のライブラリもある。) つまり、Seleniumを使えば、Pythonでブラウザの操作を自動化できる。 必要な物は? Seleniumを使ったブラウザの自動化に必要な物は以下の4つ Pythonのコード SeleniumのPythonライブ ...
  • Ubuntuに環境変数をセットし、Pythonでosモジュールを使って読む方法【os.environ使用、crontabにも対応】

    例えば、gitで管理しているプロジェクトをgitでデプロイする時。 たとえローカルサーバーのDBのパスワードとは言え、ハードコードした状態でコミットするわけには行かない。(gitignoreに入れてしまうとパスワードが含まれない) そこで、環境変数をセットし、Python側でそれを読む。 環境変数をセットする。 #変数名=値 ZZZ=test #変数を環境変数としてセットする。 export ZZZ #↑2つは下記でも可 export ZZZ=test セットした環境変数 ...
  • WindowsでPythonをインストールする

    Pythonのインストール Pythonのインストーラーを配布しているサイト( https://www.python.org/downloads/ )へ行く。 Download Python 3.10.6 の部分をクリックする。インストーラーがDLされる。 ( ※下記画像の赤枠部分。3.10.6は2022年9月現在のバージョンであり、今後バージョンが更新される。最新版のPythonインストーラーをDLする。 ) ダウンロードフォルダにて、先ほどDLしたインストーラーのファイルがあるので、ダブルクリックしてPytho ...
  • 【Django】django-admin、python、pip、コマンドが動作しない場合の対処法【環境構築問題】

    いわゆる、PATHが通っていない状態 Pythonのインストーラーでインストールする時、『add Python 3.x to PATH』というチェック項目がある。 そこにチェックを入れることで、pythonコマンドが使えるようになる。 参照元:https://bluebirdofoz.hatenablog.com/entry/2019/01/19/141007 django-adminコマンドが使えない時、 django-admin startproject config . pythonか ...
  • Jupyter Labを始める

    インストール pip install jupyterlab サーバー起動 jupyter lab ファイルの起動 jupyterlabが動いている環境下から適当にディレクトリを作り、ipynbファイルを貼り付ける 下記パスにアクセスする #-------------作ったディレクトリ↓----↓ipynbファイル http://localhost:8888/lab/tree/test/test.ipynb ...