skydum

個人的な作業記録とか備忘録代わりのメモ

python

最近の流行を取り入れたDevcontainer+Python+rey+uv環境構築

Devcontainerでpythonの実行環境を作る Devcontainerは便利そうだなと思いつつも手を出していなかったが、pythonのバージョンを色々切り替えて動かさないといけないものがあって不便だったのでDevcontainerに入門した。 構築した環境 python3 + rye + uvの最…

windows+apache2.4+mod_wsgi(コンパイル)+flask(venv)の環境を構築する

windows+apache2.4+mod_wsgi+flask(venv) Windows上でApacheを動かしてmod_wsgiでFlaskが動作する環境を作る必要があったので、作業メモ。 mod_wsgiはWindowsでコンパイルしてインストールを行います。 設定に利用したファイルは記事の最後にの掲載していま…

Docker + python + mysqlclientをインストール

Docker + python + mysqlclientをインストールする Dockerにmysqlclientを入れようとした所ちょっとハマったので忘れないようにメモ。 mysqlclientは色々なOSにインストールする度に躓いてしまう。 mysqlclientのバージョンによって少しだけ必要なパッケージ…

FastAPI + SQLAlchemyでscoped_sessionを使うとエラーが発生する

FastAPI + SQLAlchemyでscoped_sessionを使うとエラーが発生する 発生した環境は以下 Python 3.8.10 SQLAlchemy 2.0.18 fastapi 0.99.1 エラー内容 FastAPIを使っていてSQLAlchemyでDBにアクセスを連続で行ったときに以下のようなエラーが発生することがある…

Flaskでファイルを使った排他処理

Flaskでファイルを使った排他処理 どうしてもFlask(マルチプロセス)で動作しているプログラムで排他処理をしたくなった。(必要に迫られた) Linuxなら以下を利用すると良いと思うけれども、Windows環境なので利用できず。 fcntl --- fcntl および ioctl シス…

SQLAlchemy2.0の使い方(少しずつ追記予定)

SQLAlchemy 2.0 ずっとSQLAlchemy1.4を使ってきたがそろそSQLAlchemy2.0を使おうかなと思いドキュメントを見たら書き方が結構変わっていて混乱したのでまとめておく。 ドキュメントへのリンクは基本的にSQLAlchemy2.0のドキュメントへのリンクです。 公式サ…

pythonでDocstringを記載し、型定義を行ったサンプル

pythonでDocstringを記載し、型定義を行ったサンプル 開発したソースにはDocstringと型定義をするようにしているが、面倒なのか書いている人が少ない気がする。 型定義を書くと便利だと言うために型定義を体験できるサンプルを作ってみた。 動作環境 python …

Ubuntu 22.04.1 LTSでvenv

Ubuntu 22.04.1 LTSでvenvを作ろうとしたらエラーになった 検証環境としてCentOS 7でDjango3.2で動作する環境を構築しようとしたら色々面倒(python3.8のインストールとか、SQLite周りのエラーの対応)でやめたので、Ubuntuでもいいかなと思い、pythonの仮想環…

pythonでコンソールアプリケーション

pythonでコンソールアプリケーションを作る 時々コンソールアプリケーションを作りたいと思う時がある。 めったに作らないので毎回どうやって作っていたのか忘れてしまって、毎回調べているのでメモ代わりに記載しておく。 標準出力で渡されたJSONデータを整…

vscodeでpytestを使う為の設定

vscodeでpytestを使う vscodeでpytestを使う環境を作る時に毎回説明するのが大変なので手順を記載する。 テストができる環境までを記載する。 pytestの使い方とかは他の方が書いた記事を参考にしてください。 ゼロから学ぶ Python pytest pytestに入門してみ…

NiceGUIを試してみた

NiceGUIを試してみた 最近話題?になっていたpythonでGUIを作ることができるライブラリのNiceGUIを試してみたが途中で断念。 また時間をおいて挑戦したい。 公式サイト NiceGUI https://nicegui.io/ リファレンス https://nicegui.io/reference 何ができるの…

オフライン環境でデスクトップ共有

オフライン環境でデスクトップ共有を行いたい サーバの操作画面の共有と他の作業中の画面の共有を比較的簡単かつ操作を教えなくてもできるような簡単な方法で共有したい場合の方法について調べたのでメモ代わりに記載。 今回の要件だとVNCが一番楽だった(サ…

CentOS7 + vscode(remote development)でpythonのデバッガーが動かなくなった

CentOS7 + vscode(Remote Development) + python3.6.8でデバッガーが動作しない vscodeのバージョンと一緒にpythonの拡張機能をv2022,8.1に上げた所、以下の画面でF5を押してもブレイクポイントで止まらないし、デバッガーも起動しない。 調べてみたらvscode…

Flask-Loginで認証が必要なAPIを作成する

Flask-Loginで認証が必要なAPIを作成する Flask-Loginを使うと簡単にユーザーのログイン管理ができるのでとても便利 Flask-Loginの特徴 メリット 簡単にログインが必要なAPIを作成できる デメリット ユーザーの情報はセッションcookieに保存されるので、サー…

python3 + ldap3 + Active Directory(LDAP)で認証を行う

Active Directory + python3でユーザー認証を行う 参考にしたサイト Windows Server 【Windows Server 2019】 Active Directory ユーザの属性一覧の確認方法 LDAPを使ってActive Directoryを制御しよう[その1:ldpとcsvde] python Active Directory のユー…

CentOS7 + apache + uwsgi + python3 + flaskでAPIサーバを構築する その2

apache + uwsgi + flakeの負荷テストでのエラーについて 参考: Apacheでリバースプロキシ、タイムアウトを上手にコントロール クライアント → apache → uwsgiにアクセスを行う際にapacheからuwsgiにセッションを張る uwsgiのAPIからのレスポンスがクライアン…

CentOS7 + apache + uwsgi + python3 + flaskでAPIサーバを構築する その1

APIサーバを作るための環境を構築する その1 dockerでやったほうが楽だと思うけれども、dockerを使えないので…。 apche + コンソールから起動したuwsgiと連携して動作するまでの確認を行う 構築順序 OSのインストールと関連するソフトのインストール uwsgi +…

pydanticで_(アンダースコア)から始まる変数を利用する方法

pydanticで_から始まるクラス変数を利用できないので、利用できるようにする 通常の問題がないパターン from pydantic import BaseModel, Field class Users(BaseModel): id: str = Field(None) name: str = Field(None) data: str = Field(None) u = Users(…

pydanticの使い方

pydanticでネストされたモデルに値を入れる方法、ネストされたクラスを取得する方法、サブクラスの取得方法 親 → 子供 → 孫の様に定義された(ネストされた)クラスに値を入れる必要があって調べた 親に定義された子供クラスの情報を取得したかったため、親の…

SQLAlchemyで外部制約キーを複数持ったリレーションシップの設定

SQLAlchemyを使って外部制約キーを複数持ったリレーションシップを設定する リレーションシップの基本 リレーションシップについては以下がとても詳しい poyo.hatenablog.jp qiita.com 構築したいDBのER図 生成したいSQL CREATE TABLE persons ( id VARCHAR(…