utamaro’s blog

誰かの役に立つ情報を発信するブログ

2018-10-01から1ヶ月間の記事一覧

lxmlを使ったxmlのパース方法

lxmlというライブラリを使ってxmlをパースしたときのメモを記事にしています。 lxmlはBeautifulSoupというスクレイピングのライブラリでも使われたりしなかったりします。 xmlファイルを取得する pythonでファイルを読み込む方法はいろいろありますが、再帰…

bulmaのpanelのヘッダーにボタンを付ける

bulmaというcssフレームワークでpanelというものがあります。 このpanelではpanel-headingというのがあるのですが、このヘッダーに編集ボタンは用意されていません。 この記事ではbulmaのpanelのヘッダーに編集ボタンを付ける方法を紹介します。 panelについ…

画像の上に文字列を表示する方法

htmlとcssを使って、画像にマウスを置くと文字が出てくる部品の作り方を解説します。 今回javascriptは使用しません。また、scssも使いません。もちろんwebpackとかビルドは必要ないです。 最終的に↓のようなものを作れます。 htmlのコード htmlのコードはこ…

stackoverflowのapiをpythonで使ってみた

stackoverflowのoauthを試してみたので、そのときにやったことを紹介します。 基本的なステップについてはすべてドキュメントにかかれていたので、試す際に書いたコードを載せます。 ドキュメントはこちらです。 https://api.stackexchange.com/docs/authent…

Djangoのテンプレート内でcloudinaryのディレクトリを指定して画像を表示する

Djangoを使って、cloudinaryで保存している画像を表示する場合、{% cloudinary %}を使用します。 その際に、ファイル名を指定することができるのですが、ファイル名のみだとディレクトリ分けしていた場合表示されません。 そこでなんとかディレクトリを指定…

Djangoでログイン後に特定の処理を挟む方法

表題の通りですが、Djangoでログイン後に一回だけ処理を入れたいときの方法を考えて見ました。 一つしか思いつかなかったのですが、紹介したいと思います。 やることをは簡単で、ログイン後のリダイレクトに一つだけviewを挟む形です。 まずは、settings.py…

Djangoでtwitter認証をしたあとにツイートする方法

前提として、social-auth-app-djangoを使ってtwitterでの認証が実装できている状態とします。 class TwitterPost(TemplateView): post_api = "https://api.twitter.com/1.1/statuses/update.json" def post(self, request, *args, **kwargs): social_user = …

Djangoのtemplate内でクエリパラメータを設定する方法

Djangoのtemplate内で以下のように書いているときに、リンク先をクエリパラメータで渡すときの方法です。 <li><a href="{% url 'home' %}">next</a></li> 渡したいパラメータはpとします。値は整数です。 まず、一番簡単な方法を紹介します。 <li><a href="{% url 'home' %}?p=1">next</a></li> この方法はシンプルですが、パラメータが増えたとき…

SpringBootでLocalDateTimeを含んだデータをCSV形式で出力する方法

SpringBootを使って、データ内にLocalDateTime型のフィールドがある場合のCSVファイル作成方法です。 CSVファイルを作成して、そのファイルをダウンロードするのではなく、CSV文字列を返すイメージです。 ブラウザでGETリクエストをするとダウンロードできる…

SpringBootでクライアントからの日付をLocalDateTimeで受け取る方法

クライアントから2018-10-19T10:10という文字列を受け取ったときに、LocalDateTimeで受け取る方法を紹介します。 LocalDateTimeで受け取れると何かと便利です。Stringで受け取ると、それをDateに直したりするのが面倒なので、結構使える方法なのではないでし…

SpringBootでPathVariable付きのリダイレクトをする方法

spring bootを使って、@PathVariableがついているurlにリダイレクトする際の方法について紹介します。 設定は、/redirect/fromにリクエストがあった際に、/redirect/to/{id}へリダイレクトするときの書き方です。 それぞれのurlの仕様について説明します。 /…

pythonを使ってディレクトリのツリー構造をjsonで表示してみた

何に使えるのかわかりませんが、ディレクトリのツリー構造をjsonで表現するプログラムを紹介します。 サンプルとして用意したティレクトリ構造が以下のものです。 このディレクトリのtreeをjsonにしたいと思います。 dir/ ├── dir2 │ ├── file1 │ └── file2 …

pythonで楽天apiを実行する方法

楽天の会員登録をする これは登録画面に沿って登録をするだけです。 登録画面のurlを載せます。 【楽天】ログイン 楽天のアプリIDを発行する アプリURLはhttp://localhost.comで登録しました。 やり方を調べたところ、自分のgithubのurlを入れるというのも見…

エクセルを使わないでマークダウンでapiのドキュメントを作成する

apiのドキュメントを作成する際にエクセルを使って見栄えの良い(?)ドキュメントを作成することはよくあります。 ですが、以下のことが起きたりします。 キレイな表を作成することに力を入れてしまう 更新されない xxx_v1とかxxx_v2というファイルが増える こ…

プログラミングを勉強するおすすめの方法

プログラミングを勉強する際の、おすすめの方法を紹介します。 私の場合、新しい言語を勉強する場合はじゃんけんゲームを作成します。 じゃんけんゲームを作成する理由は↓です。 理由 じゃんけんは簡単なアルゴリズムである アルゴリズムを考えて悩むことが…

何かを説明する際に気をつけていること

私は、誰かに何かを説明することがとても苦手です。 それも、人と会話することが少なく、噛み噛みなためなのですが... そんな私が説明時(1対1、もしくは1対多のとき)に気をつけていることを紹介します。 気をつけていること 気をつけていることは3つありま…

シンプルなカレンダーフォームを作る方法

日付選択をする際にでてくるあのカレンダーを作る方法を紹介します。 documentではdomに属性をつけてオプションを指定しているのがほとんどですが、属性をつけるとごちゃごちゃするので、jsに書きます。 準備 以下のライブラリが必要です。 リンクを付けまし…

Django+herokuでS3を使わない画像の保存方法

cloudinaryというアドオンを使って、画像を保存します。 画像の保存というとamazon s3が思い浮かぶと思いますが、あれほんの少しお金かかりますよね? スタートということで、完全無料でやるためにcloudinaryを使ってみます。 cloudinaryのアドオンは↓です。…

できるだけ早く、無料でwebサービスを開発するまで

無料でwebサービスを作り、公開するまでの流れを紹介したいと思います。 今回BookStackerhttp://www.book-stacker.comというサービスを作ったので、その際の開発の流れを紹介します。 以下の流れで開発を行いました。 タスクを洗い出す(3h) 仕様を書き出す(3…

javascriptのreduceを使って配列を更新する方法

reduceを使用すると、ある配列を使って単一の値を計算したい場合に使えます。 いくつかreduceを使った例を紹介します。 配列内のデータを加算する var datas = [1,2,3,4,5] var result = datas.reduce(function(num, item) { // numの初期値は0 return num +…

Djangoでcssファイルから画像ファイルを読み込む方法

Djangoでcssファイルから画像ファイルをurlで指定する方法について紹介します。 やることは簡単です。 Djangoの設定ファイルで以下のような設定をしていると思います。 STATIC_URL = '/static/' STATIC_ROOT = 'staticfiles' この設定をしている場合、static…

javascriptでカレンダーを作成する

html、css、javascriptを使ってカレンダーを作成します。 この記事では、htmlとcssの部分についてはcodepenで見つけたデザインを使用しています。 なので、javascriptをメインで紹介したいと思います。 参考にしたデザインはこちらです。 https://codepen.io…

pythonのファイルをherokuで定期的に実行する方法

この記事ではpythonのファイルに書かれたprint()を定期的に実行する方法を紹介します。 ↓のページを参考にしています。 https://devcenter.heroku.com/articles/clock-processes-python herokuで適当なアプリケーションを作成していて、remoteへpushできるま…

frappe-ganttでグラフを更新する方法

frappe-ganttのドキュメントからチャートの更新apiを探してみたのですが、見つけられませんでした。 issueを見てみたところ、解決策が見つかったので紹介します。 https://github.com/frappe/gantt/issues/44 jsfiddleにコードを公開してくださっているので…

frappe-ganttを使ってガントチャートを作成する方法

ガントチャートを作成するライブラリは多くありますが、今回紹介するのはfrappe-ganttというライブラリです。 github.com ↓のようなチャートを作成できます。 残念ながら、マウス操作でタスクを追加することはできません。自分で実装することはできそうなの…

postgresqlをmacで使う

環境設定 brew install postgresql 起動 postgres -D /usr/local/var/postgres 2018-09-22 05:36:28.073 JST [41369] LOG: listening on IPv6 address "::1", port 5432 2018-09-22 05:36:28.073 JST [41369] LOG: listening on IPv4 address "127.0.0.1", p…

frappe chartを使ってグラフを更新する方法

frappe chartを使ってグラフを更新する方法と、ドキュメントに載っているサンプルを書いています。 最終的に↓ができます。 html、javascriptをコピペするといくつかのサンプルも確認できます。 導入 まずはインストールします。 npm install frappe-charts …

可変グリッドレイアウトをMuuriで実装する

画面サイズを変えると、中のグリッドがグリグリと動く画面を作ってみます。 github.com npmでインストールします。 npm install muuri 注意事項 ドラッグして要素を動かす場合は以下のライブラリをインストールする必要があります。 npm install hammerjs np…