旅好きエンジニアのメモ

旅のこと映画、統計、会計、プログラミングなど、気の向くままに語ります

python

bottleでファイルダウンロード機能を追加する

bottleでファイルダウンロード機能を追加するのは結構簡単です とりあえず下記のような感じでダウンロード出来るようになります・ ファイル構成 app ├── controller │ └── static.py │ └── static ├── csv │ └── sample.csv └── img └── samle.jpg htmlタグ <a href="/download/csv/sample.csv" download="sample.csv"></a>…

スクレイピングで文字化けを防ぐ方法

下記が使用するライブラリ(chardet)です。 pypi.org chardetは文字コードを検出するライブラリで検出して取得したデータにdecodeをすると文字化けを解消できます。 sampleは日経のページです。 import urllib3 import chardet url = "http://www.nikkei.com/…

vue.jsのデリミタ(delimiter)を変更する方法 sampleとしてjinja2を使用

フロントエンドのフレームワークと既存のテンプレートエンジンのデリミタ(delimiter)って被ってしまった。。。 ちなみにデリミタ(delimiter)とは、"フィールド区切り文字"のことです。 具体的には railsのerbの<% hogehoge %>とか jinja2の{{ hogehoge }}と…

binanceから日足を取得するスクリプトを書きました(python)

仮想通貨のコイン間での値動きの相関を調べてみたいと思い、まずはbinanceからデータを取得するpythonスクリプトを書いてみました。 実装には下記のライブラリを使用させてもらいました。(作者の方は他のwrapperも作っていて意欲的な感じがします!) github.c…

pythonでjwt使おうとしたらライブラリで詰まった件について(入れなおせばいいんだ!)

jwtって そんな人は下記記事が参考になります。 今回はエラーの対処法のみです qiita.com ライブラリ似過ぎな件 ①Pyjwt github.com ②jwt github.com はい、こいつらの共存が悪影響を及ぼします。。。 名前空間でも影響しあってるのかな? そこまで調べる気力…

pythonでapiからデータを取得する方法 (urllib3)

はてさて、pythonでapiからデータするときみなさんはどんなライブラリを使いますでしょうか? urllib? urllib2 urllib3? ってライブラリ多いですね。 ちなみに、"urllib"は"https"でデータを取得できない場合もあります。 なので、個人的なオススメは"urllib…

djangoでpandas使うのは簡単だった

pandas使ってデータ分析しているサイトがよくあって、 私も参考にしているのですが大体csv使ってませんか? 少ないデータだったらcsvで良いと思うんですけど、 apiやスクレイピングデータ取るときってdbに突っ込みませんか? djangoのormでデータをdbにつっ…

pythonで配列追加の処理速度の違い

pythonで配列追加の処理速度を比べてみました。 "append"を使う方法 import time def process(): result = [] start_time = time.time() for _ in range(10000000): result.append("test") processing_time = time.time() - start_time return processing_ti…

pythonのリスト内包表記と普通のfor文どちらが早いか

リスト内包表記と普通のfor文どちらが早いかを確かめてみました。 普通のfor文 import time def process(): start_time = time.time() result = [] for i in range(30000000): result += [i] processing_time = time.time() - start_time return processing_…

pythonの標準入力で気をつける

pythonの標準入力 なんか色んな記事を見ていると、 import sys sys.stdin.read() sys.stdin.readline() sys.stdin.readlines() や rau_input() などがありますが rau_input()はpython2なので python3は下記を使いましょう。 input() それにしてもpythonの記…

djangoでjupyter notebookを使う方法

djangoでjupyter notebookを使おう pythonicでデータ分析をする方ならjupyetrを使う方は多いのではないでしょうか? ただ、web開発で何かしらのフレームワーク使っていたらjupyter使うって感じにならないですよね。。。 (自分だけかもしれないですが) しかし…

25日の移動平均線をpythonで求める方法

亀のような遅さでトレードの自動売買システムを作成しています。。。 djangoで作ろうとしているので完成が見えない。。。(フロントなくそうかな。。。bottleにしようか。。。) 今回は25日の移動平均線を求めてみました。 はい、下のコードで終わりです!!(p…

pythonでseleniumでブラウザ自動で動かしてみた(mac)

運営しているサイトを全画面自動でとりあえずたくさん開きたい時ってないですか? (アプリケーションエラーは拾ってくれるようにしてるので、とりあえずページ開いちゃってバグを洗い出すとな感じです。) 今回はとりあえずyahoo finance(米)で試してみます。…

djangoのORMでwhere文の大なり(>)を書きたい時

例えば、昨日の日付から現在までのデータを取得したい時 yesterday = datetime.date.today() - datetime.timedelta(1)example_table.objects.all().values().filter(registeredDateTime__gt=yesterday) filterでいつもの"="の前に "__gt"をつけてやればいい…

djnagoのORMでinを書く方法

例えば為替のレートを検索するときでユーロとオーストラリア・ドルだけ抽出したいときは以下のように書きます。 ExchangeRate.objects.all().values().filter(currency_code__in=["EUR","AUD"]) filterのなかで"__in="を書いて、その中でリスト型で書くだけ…

pythonでオブジェクトの中身を知りたい時

pythonでオブジェクトの中身を知りたい時 pythonってrubyに比べて便利なメソッドとか無かったりするんですよね。 特に最近思ったのはオブジェクトの中身を確認する方法。 rubyだと便利なのは一杯あるんですよね。 qiita.com 個人的にpythonだと dir("調べた…

Djangoを使っていてドメインだけのルーティングをセッティングしたい場合

Djangoを使っていてドメインだけのルーティングをセッティングしたい場合 r'^$'を書けばドメインだけのルーティングができます。 url(r'^$', "ルーティングする場所", name=' '),

Djangoでデータ登録しようとした時character with byte sequence 0xe3 0x83 0x95 in encoding "UTF8" has no equivalent in encoding "LATIN1"なエラーが出ちゃった時

Djangoで日本語のデータを登録しようとした時、以下のようなエラーが出ました。 character with byte sequence 0xe3 0x83 0x95 in encoding "UTF8" has no equivalent in encoding "LATIN1" これは自分がPostgreSQL使っていて起きた問題です。PostgreSQLに原…

Djangoとnginxでstaticファイルが当たらないとき

普段nginxの設定をしない自分からすればめっちゃ詰まりました。。。 nginx,uwsgi,djangoを使ってサイトを公開しようとしました。 すると、おっ独自ドメインでサイト見れるぞ!っとここまでは良かったんですが、あれcss当たってない。。。。と言うかstaticフ…

django製CMS mezzanineをインストールしてみよう

みなさんはCMSと聞いて何を思いつくでしょうか?そうです、wordpressですね。 テンプレートの種類もプラグインも豊富ですし簡単にブログやサイト構築ができて非常に便利です。 でも、phpですよ!php!えぇ、私はphpができないんですね。じゃあ勉強してやれば…

pythonの仮想環境 virtualenv の使い方

pythonの仮想環境 virtualenv の使い方 好きな名前をつける virtualenv "仮想環境名称" これで仮想環境を作ります 次に以下のコマンドで仮想環境を起動します cd "仮想環境名称"source bin/activate はじめはpython2の環境なのでpython3にしたい人は自分で設…

djangoとpostfixでメールを送信する方法

djangoとpostfix(smtpサーバー)でメールを送信する方法についてまとめていきます。 環境 ubuntu16.04django1.11 postfixの設定 まず、smtpサーバーとは簡単に言うとメールサーバーのことです。電子メールを送信したり、受信したりと。 まずは自分のサーバにs…

rubyとpython どちらも使ってみての比較っていうか感想

お仕事では主にrubyで趣味やデータ分析などの際にはpyhtonを使っています。まぁ、どちらも初心者なので的を捉えてるとは言い難いですが、触ってみての感想を書いて行きたいと思います。 直感的に書けるruby,合理的なpython まず、rubyですが、日本人のMatzが…

Djangoで簡単にログインユーザーを拾ってくる

Djangoログインユーザー取得 なかなかDjangoの情報って出てこないんですよね。 ログインユーザーの簡単なとり方さえも... d.hatena.ne.jp こんなんとか、 shinriyo.hateblo.jp こんなんとか、 見てもでてこない。 正解は username = request.user でした。 …

DjangoのフォームにCSSをあてる方法

Djangoのフォームにcssをあてる方法ってなかなか出てこない 大体フォームって書くと下のような感じになると思います。 class name(forms.Form): name = forms.CharField( label='名前', max_length=255, required=True, widget=forms.TextInput(attrs={'clas…

Python3でwebスクレイピング 画像を自動取得する

機械学習にあたって画像がいっぱい欲しい 機械学習の画像認識をするときにどうやってデータを集めるかって結構大事だと思うのです。 いちいち手動で画像を取得していたのでは時間がかかりすぎてしまう。 そこで、自動的に取得したい。 そこで参考にしたのは…