Python

スプレッドシートから商品情報を読み出す

こんにちは、シュンです。 メルカリへの出品自動化はできそうだということが分かりました。 しかし、設定項目が多いです。 商品名、詳細、カテゴリ、価格などなど。 そこで先にスプレッドシートから設定項目を読み出せるようにしました。 フリマ出品は設定項…

メルカリ出品のブラウザ上操作を自動化する その1

こんにちは、シュンです。 最近メルカリをヘビーユースしています。 でもブラウザ上でのマウス操作が大嫌いなんです。 というわけで自動化システムの開発をはじめました。 ブラウザ上でのメルカリ出品作業は面倒 自動化した動作はこんな感じ 技術的なところ…

SQLAlchemyで"case"

SQLAlchemyでcase文がつかえる。 case文とかこれのこと。 CASE WHEN 条件 THEN 値1 ELSE 値2 END 第一引数は必須で、条件と、それが真だった場合に返す値のタプルのリスト。 キーワード引数 else_ は偽だった場合に返す値。 条件にはand、or演算が使えること…

SQLAlchemy のサブクエリ

サブクエリのフィールドが見つからないといわれてちょっとハマった。 複数のカゴの中にりんごが複数入っているとする。 すべてのカゴに入っているりんごの総数を集計するサブクエリは以下のように書ける。 りんごのID (apple_id) と総数 (total) をフィール…

Djangoでリクエストがajaxかどうか判定する

これだけ def index(request): request.is_ajax() return HttpResponse()

Pythonでプラットフォームごとに処理を切り替える

プラットフォームで処理を切り替えたいことがたまにある。 sysモジュールを使うと割と簡単にできる。 import sys # "darwin", "linux", "win32" or "cygwin" sys.platform # Pythonのパスを取得したい場合は sys.executable

PythonでスタンドアロンなGUIアプリを作る

Mac Yosemite 上に構築する。 下準備 Homebrewのインストール クロスプラットフォームなGUIアプリを作るためにQtというライブラリを利用する。 Qtをインストールするのにbrewコマンドが必要となる。 Homebrew このページの先頭にあるスクリプトをコピーして…

Read-onlyなclasspropertyデコレータの実装

class classproperty(property): def __init__(self, fget): super(classproperty, self).__init__(fget) self.__doc__ = fget.__doc__ def __get__(desc, self, cls): return desc.fget(cls) class A(object): @classproperty def __tablename__(cls): retu…

SQLAlchemyでリレーション

以下のサンプルでは、 各クラスについてidやテーブル名を定義するのが面倒なのでベースクラスを用意する。 from sqlalchemy.ext.declarative import declarative_base, declared_attr Base = declarative_base() class BaseModel(Base): # 継承してね __abst…

PySideでスクリーンサイズを取得する

QApplicationオブジェクトのdesktopメソッドで、 QDesktopWidgetオブジェクトが取得できる。 このオブジェクトからデスクトップの情報を取得することができる。 以下のサンプルコードでは、 例としてデスクトップの左半分にウィンドウを表示している。 impor…

SQLAlchemyでサブクエリ

問題 SQLAlchemyから集約関数sumを使ったとき、 同じ列を重複してカウントしてしまった。 以下のようなSQLを実現したい。 sqlite> select l.lemma, lf.total, t.token, tf.total from lemma l join ( select lemma_id, sum(count) as total from lemma_in_fi…