安心決済詳しく
- プランの範囲内の修正は無料です。
- 納品から3日以内にご対応がない場合、自動的に承認されます。
代金はお支払い時にお預かりし、納品を承認した時点ではじめて支払われます。

成果物の例
コードレビュー:小さなネットショップの注文取り込みPythonスクリプト
コードの処理内容
- ショップから出力した
orders.csvを読み込む - 注文行ごとに
stock.xlsxからSKUで商品を探し、数量を差し引く - 更新した在庫を書き戻し、集計を
import_log.txtに記録する
構成はわかりやすく、関数名も適切です。問題の多くは、想定と違う形式のデータが入ってきたときに起きています。
バグと弱点
| No. | 行 | 重要度 | 内容 |
|---|---|---|---|
| 1 | 48 | 高 | 同じCSVを2回取り込めてしまう。処理済みの注文IDを確認していない。在庫がマイナスになる最も有力な原因 |
| 2 | 72 | 高 | 返品注文の空欄や「2.0」のような値で int(row["qty"]) が落ちる |
| 3 | 95 | 中 | SKUの照合が大文字・小文字を区別するため「gt-101」と「GT-101」が別商品扱い |
| 4 | 130 | 中 | encoding="utf-8" を指定せずにファイルを開いており、Windowsで日本語の商品名が文字化けする |
| 5 | 201 | 低 | 素の except: が本当のエラーを隠し、ログが役に立たない |
修正コード(抜粋)
問題1:取り込み済みの注文をスキップする
processed = load_processed_ids("processed_orders.txt")
for row in reader:
if row["order_id"] in processed:
continue
# ... 既存の処理 ...
processed.add(row["order_id"])
save_processed_ids("processed_orders.txt", processed)
理由:同じファイルでもう一度実行しても、各注文は1回しか反映されません。
問題2:数量を安全に読み取る
raw = (row.get("qty") or "").strip()
try:
qty = int(float(raw))
except ValueError:
log.warning("注文 %s:数量 %r が不正のためスキップ", row["order_id"], raw)
continue
理由:返品や一部キャンセルの行は、取り込み全体を止めずに、わかりやすいメモを残してスキップされます。
問題3:SKUを正規化する
sku = row["sku"].strip().upper()
在庫の辞書を作る側にも同じ .strip().upper() を適用してください。
書き方と読みやすさ
process()が90行あります。read_orders、apply_to_stock、write_reportに分けましょう。row[7]のような列番号の直書きは、見出し名での参照に置き換えてください。
ご注意: 各修正は必ずファイルのコピーで試してください。今回はコードを読んでレビューしたもので、実行はしていません。
クライアント: 紅茶専門店のオーナー。ネットショップの注文CSVを在庫表に取り込む310行のPythonスクリプトをご自身で作成 ご相談内容:「ときどき在庫がマイナスになる。ファイルによってはスクリプトが止まる」
お客様とすべての情報は架空のものです。
このサービスについて
PythonのWebアプリは、たいてい予想どおりのパターンで遅くなったり危険になったりします。テンプレートのループ内でのデータベースクエリ、有効なままの DEBUG、設定ファイルに書かれたシークレットキー、ユーザー入力から組み立てた生のSQL、1つの巨大なファイルに膨らんだFlaskアプリなどです。ビュー、ORMのクエリ、フォーム、設定を読み、リクエストがアプリをどう流れるかを説明し、問題をリスク順に指摘します。修正済みの断片では、select_related、フォームの検証、ブループリントなど、フレームワークにもともと備わっている機能を使います。
含まれる内容
- 納品内容注文ページに書面のレビューをお届けします。内容は、アプリ内のリクエストの流れ、リスク順の問題点、修正済みのPythonの断片です。プレミアムでは、プロジェクトをアプリやブループリントに分割するプランも付きます。
- クエリ数N+1 クエリと select_related
- 設定の安全性DEBUG、シークレットキー、許可するホスト
- フォームと入力検証とCSRF対策
- アプリの構成ビュー、アプリ、ブループリント
- 修正済みの断片フレームワークの組み込み機能を活用
ご利用の流れ
- 1依頼内容ビュー、設定、エラーを貼り付けていただきます
- 2通読アプリ内のリクエストを追跡します
- 3チェック問題点と修正済みのコードが届きます
ご用意いただくもの
テキストまたはスクリーンショットで貼り付けたビュー、ORMのクラス、フォーム、設定、フレームワークとPythonのバージョン、本来どうなるべきか、トレースバックがあればその内容。
お伺いする内容:
- DjangoとFlaskのどちらで、バージョンは何ですか?
- どのデータベースと拡張機能を使っていますか?
- 何がうまくいかず、トレースバックはありますか?
- アプリはすでに公開されていますか、それとも開発中ですか?
プランを比較
| プラン | ベーシック最大100行のアプリコード¥2,320 | スタンダード最大400行のアプリコード¥5,410 | プレミアム構成プラン付きで最大1,000行¥10,670 |
|---|---|---|---|
| 納期 | 1日 | 2日 | 3日 |
| 修正回数 | 1 | 2 | 3 |
| コードの行数 | 最大100 | 最大400 | 最大1,000 |
| 修正済みの断片 | あり | あり | あり |
| プロジェクト構成プラン | なし | なし | あり |
| 注文する ベーシック | 注文する スタンダード | 注文する プレミアム |
安心決済
お支払いは注文時ですが、代金が支払われるのは承認された納品に対してのみです。
- 固定料金お支払い後にプランの料金が変わることはありません。
- 代金はお預かりお支払い時、代金はお預かりするだけです。納品を承認した時点でサービス側に支払われます。
- 納品前にチェックすべての成果物はお手元に届く前に品質チェックを受けます。承認前に注文ページで内容を確認できます。
- 無料の修正依頼内容の範囲内で、プランで定められた回数まで修正を依頼できます。
- 3日後に自動承認納品から3日以内に承認も修正依頼もない場合、自動的に承認されます。納品後に注文チャットでメッセージを送った場合、注文は保留されます。こちらから回答した後、3日間のカウントを再開することがあり、その際はチャットでお知らせします。
- やり直しまたは全額返金結果が依頼内容と合わず修正でも解決しなかった場合、または作業に納期の2倍を超える時間がかかった場合は、注文チャットでご連絡ください。作業をやり直すか、代金を全額返金いたします。
質問と回答
コードを実行してもらえますか?
いいえ。コードを丁寧に読んで動作を検討しますが、実行はしません。提案した修正は、必ずご自身のプロジェクトでテストしてください。
本番サーバーの設定も確認してもらえますか?
シークレットをプレースホルダーに置き換えて貼り付けていただいた設定ファイルをレビューします。サーバーにはログインしません。
マイグレーションのエラーも手伝ってもらえますか?
はい。マイグレーションファイルとエラーの全文を貼り付けてください。何が競合しているか、安全に解決する方法を説明します。