mizzsugar’s blog

日々感じていることや学んだことを書きます。エンジニアリング以外にも書くかもしれません。

ざっくりPyConJP2019の1日目感想

今年もPyConJPに参加しました! 1日目に拝聴したセッションの感想をざっくり書き残そうと思います。 なお、今日の発表の様子はYouTubeにすべて上がっています。 t.co 個人的に、YouTube版はちゃんと聞き取れるしスライドの内容もちゃんと見えるので良かった…

【Python】Poetryでパッケージ管理 on Docker Container

DockerでPython開発する時、パッケージ管理はpip install -r requirement.txtで行なっていましたが、 requirement.txtのみではパッケージ同士の依存関係まで管理できないことが問題でした。 そこで、Poetryを使ってみることにしました。 github.com 使用技術…

【Django】独自ヘッダーをつけてリクエストを送る

地味に苦労したやつです。 利用技術 - python 3.7.3 - Django 2.2.1 ヘッダーに関して、Djangoの公式ドキュメントはなんて言っているでしょうか。 HttpRequest.META 利用できるすべての HTTP ヘッダーが格納されたディクショナリです。 -- Django公式ドキュ…

【Django】複数のファイルをまとめてテストするとTransactionErrorやIntegurityErrorになってしまう事件について

仕事でテスト周りについて色々あったので備忘録として 例えば、こういうViewとModelがあったとして・・・ (まあ、こんなこと普通しないとは思いつつ簡単な例を出したく) models.py from typing import Dict from django.db import models from django.db i…

【Django】複合ユニーク制約を実装する

Djangoで複合主キーっぽいことをやりたくて。 使用技術 * Django 2.2.1 * Python 3.7.3 Djangoでは単一主キーのみをサポートしているため複合主キーはできないのですが 複合ユニーク制約ならできるようです。 Django2.2にて、MetaオプションにUniqueConstrai…

【Python】GoogleAPIを利用したメソッドのテストでモックを使う

外部APIを利用したメソッドの単体テスト書きたいなあ・・・ 単体テストで何回も外部APIに接続するのはお行儀悪いって聞くけどどう書けば良いのだろう?と思い。 簡単な機能のテストを書きました。 ちょっと変更しましたが、Google Calendar APIのquick start…

【Django】フォームのカスタムバリデーションをテストする

Djangoのフォームで独自のバリデーションを実装した際のテスト方法を紹介します。 間違いがありましたら、ご指摘お願いします(>人<) 今回使ったバージョン * Python 3.7.1 * Django 2.1.7 今回実装するフォームはこちら forms.py import re from django impo…

DjangoCongress2019に参加しました

初DjangoConでした! とても刺激になったので拝聴したトークを自分なりにアウトプットしようと思います。 なお、DjangoCongressJPのHPは以下になります。(TimeTableも載っています) djangocongress.jp 私が拝聴したのは下記のトークです! Djangoで静的フ…

【Django】JsonResponseでのテストの仕方(GET/POST)

久々の投稿となってしまいました(^^; 今回使用したバージョン * Python 3.7.1 * Django 2.1.7 今回サンプルとしてテストしたいメソッドはこちらのView関数 views.py import json from django.views.decorators.http import require_POST, require_GET from d…

【非公式翻訳】ForeignKey in Django公式ドキュメント

Django公式ドキュメントのForeignKeyの日本語訳です。 docs.djangoproject.com 間違いがありましたら、コメント欄にてご指摘お願いします! ForeignKey class ForeignKey(to, on_delete, **options) [ソース] 多対一のリレーションです。2つの位置引数を必要…

【非公式翻訳】Google API Client Libraries > Python

公式の日本語版がなかったので、備忘録的に・・・ ※2017/02/17が最終更新の記事となります。 ※表現するのが難しかったので図中の語句の訳は書きませんでした。 ※わかりづらい箇所や間違えている箇所がありましたら、コメント欄にてご指摘お願いします。 deve…

2019/01/26オブジェクト指向分析会に参加しました

なんとなくオブジェクト指向をサポートしているプログラミング言語を書いてるけどちゃんと概念を学んだことがないなと思い、参加してみました! 今回の趣旨 オブジェクト指向に則ってモデリングしてみて、オブジェクト指向に則って実装してみよう! やったこ…

20181103 ミニTDDBC振り返りその3

だいぶ放置してしまいましたが・・・(^^; mizzsugar.hatenablog.com の続きです。 ※今回、DDDの「Value Object」が出てきますが、 DDD学び始めたばかりで理解が曖昧なので 違ったらご指摘いただけると幸いです(>_<) 今回学んだことは 1. きれいなコミットメ…

【Django】すべてをviews.pyのみに書いていたのをdomain.pyを作ってリファクタリングした

DB関連の処理も、計算関連の処理のための関数も、全てviewsに書いていましたが、 viewsに全てを書くのをやめました! という話です。 動くからいいやん!と思っていましたが、viewsにはviewsの役割があり、上記の処理はviewsでやることではないとか。 半年ほ…

【ポエム】ヘルプデスクの仕事を振り返る

プログラマに転職する前に、1年ほどやっていたヘルプデスクの仕事の所感をまとめようと思います。 仕事内容は会社によりますし、個人の感想(思っていることは変えられない)なので ご配慮いただけると幸いです。 また、具体的なことはかけないので、結構ふ…

DjangoのフォームのChoiceFieldに画像を挿入する

苦労したので、備忘録に・・ 環境 Python 3.7.1 Django 2.1.3 ※今回投稿する方法は、Django1系では利用できません。 1系はこちらをご参照ください。 なお、下記の記事の中にあるRadioFieldRendererは2系では存在しません・・・ moqada.hatenablog.com 注文ア…

20181103 ミニTDDBC振り返りその2

mizzsugar.hatenablog.com の続きです。 今回学んだことは 1. きれいなコミットメッセージの書き方 2. 学習テスト 3. DDDなリファクタリング この記事では、「2. 学習テスト」について書きます。 今回の題材はこちら お題: セマンティック・バージョニング ·…

20181103 ミニTDDBC振り返りその1

都内某所でミニTDDBCみたいなものに参加しました。 今回学んだことは 1. きれいなコミットメッセージの書き方 2. 学習テスト 3. DDDなリファクタリング この記事では、「1. きれいなコミットメッセージの書き方」について書きます。 今回の題材はこちら お題…

PythonのWEBスクレイピング超絶入門に利用した文法など

PythonでWEBスクレイピングに初挑戦しました! 今回は、下記のnote教材にお世話になりました! note.mu 超絶入門ということもあり、 さらっと出来てすごいなあと感動しました! (本当にありがたい・・・!) しかし、私自身、「パーサとは」といったことか…

Djangoで画像をクリックしたらモーダルで表示するには

【前提】 Python 3.6.6 Django 2.1 Bootsrap 4.1.1 jQuery 3.3.1 方法、見つけました。コピペしたら動きました。 が、コピペ丸にはなりたくないので、 自学のためにこのコードの動きを書くことにしました。 方法、見つけました。コピペしたら動きました。 が…

Python3で再帰処理を書いたよ

再帰処理を1日中学んだ翌日、夢の中で再帰処理を書いてしまうほどになってしまったので これはお告げだと思い、ブログに書くことにしました。 【前提】 Python 3.6.6 mypy 0.630 再帰処理とは 「プログラムのある関数の中から自分自身の関数を呼び出す」処理…

PyConに初めて参加してみて学んだこと

初めてPyConに参加しましたので、参加したセッションで学んだことをまとめました! 普段考えなくても動くようなプログラムの裏側を学ぶことができて、 よりたくさんのことができるようにするための糧となりました^^ 何より、PyConで未経験から転職したという…

add_error(field, error)で「Pythonではfieldじゃなくてattributeじゃないの!?」と慌てた話

Djangoドキュメントを読んで慌てたけれども、ドキュメントは間違えていなかったという話です。 add_errorとは エラーを引数にもつフォーム型の変数に、エラーを追加する関数です。 混乱 fieldってなんだ!? Pythonでは、フィールドのことを attributeという…

【Python・Django入門】ログイン画面、ユーザー登録画面を作る②

mizzsugar.hatenablog.com こちらの記事の続きです。 ①の記事では、ユーザー登録機能とログイン機能を作りました。 この記事では、パスワードの変更機能とログアウト機能を作ります。 パスワード変更機能 urls.pyにパスワード変更画面のURLを追加します。 ur…

try/except(try/catch)の処理順序を理解する

try/exceptの処理の順序がよくわかっていないことがわかったので、自分の理解のために書きます。 今回は、Djangoでユーザー登録する機能を例にします。 パスワードが以下の条件を満たしていなかったらエラーとなり、 8文字以上 半角英字と半角数字の両方から…

【Python・Django入門】ログイン画面、ユーザー登録画面を作る①

ブログのユーザー登録画面と、ログイン画面を作成します。 投稿画面と投稿一覧画面はこの記事のものを利用します。 mizzsugar.hatenablog.com forms.pyでログインフォームとユーザー登録フォームを定義するクラスを作成します。 ユーザー登録では、 ユーザー…

【Python・Django入門】フォームに入力して送信したら、入力した値が表示される方法

1.プロジェクトを作る Djangoはプロジェクトを作成して、その中にWebアプリケーションを作成します。 プロジェクトを作りたいディレクトリに移動して、以下のコマンドを実行します。 django-admin startproject myProject 次に、myProjectのディレクトリに移…

【Java入門】データベースの情報にデータを挿入、データを削除、データを修正する

mizzsugar.hatenablog.com ↑こちらの記事と同じデータを利用しています。 今回は、この生徒一覧表テーブルから、情報を取得します。 SQL文にすると CREATE TABLE `students` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, `name` TEXT NOT NULL, `gra…

【Java入門】データベースの情報を取得する

今回は、この生徒一覧表テーブルから、情報を取得します。 SQL文にすると CREATE TABLE `students` ( `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, `name` TEXT NOT NULL, `grade` INTEGER NOT NULL ); Studentクラス public class Student { private …

【Java入門・Python入門】if文とswitch文

If文は条件が決まっている時、条件が範囲指定の時に利用します。 例えば、 18歳未満なら運転できず、18歳以上なら運転できるという条件のもと、 誰が運転できて誰が運転できないかの文章を表示するクラスは以下のようになります。 【Java】 Personクラス pub…