pandas使う時に参考になったありがたきサイト
以下のリポジトリにあがっている問題を解くにあたって参考にしたサイトをまとめておいた。
github.com
公式。Styleについて。
公式。Visualizationについて
セルにグラデーションで色を付ける
グラフに任意の線を引く方法
グラフ描画(ax)
時系列データの扱いや、フィルタリングするときに役立った。
【Django】REST APIを作る時に参考にしたサイトメモ
【Docker・Django】pip installしてるはずなのにModuleNotFoundError + curlでAccess-Control-Allow-Originを表示させる方法
ずっとModuleNotFoundError
アプリケーションはpip installしてるはずなのにdockerのログを見るとModuleNotFoundErrorが出てる。
一応再インストールしてみるけどもう入ってると言われる。
$ curl -i http://localhost:8000/api/threads/?format=json curl: (52) Empty reply from server $ docker logs q-share-app-web : : File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked ModuleNotFoundError: No module named 'corsheaders' $ pip install django-cors-headers Requirement already satisfied: django-cors-headers in /Users/sane/.pyenv/versions/3.6.2/lib/python3.6/site-packages (2.2.0)
原因
pip installしてるのに、モジュールねえよと言われる。
どうやら、コンテナを生成する時にrequirementsからpip installしてるっぽい。
ということで、一度ストップしてから再生成する。
$ docker-compose stop $ docker-compose build : : Collecting django-cors-headers (from -r requirements.txt (line 7)) Downloading https://files.pythonhosted.org/packages/b1/bc/0414cf96a2e4a917b1f53b638f34f4999cc9a97fadbd1420054cc11b4ad2/django_cors_headers-2.2.0-py2.py3-none-any.whl Collecting pytz (from Django==2.0.5->-r requirements.txt (line 1)) Downloading https://files.pythonhosted.org/packages/dc/83/15f7833b70d3e067ca91467ca245bae0f6fe56ddc7451aa0dc5606b120f2/pytz-2018.4-py2.py3-none-any.whl (510kB) : $ docker-compose up -d
うん、インストールしてるっぽい。
curlで確認
普通に「curl -i example.com」としてもAccess-Control-Allow-Originが出てくれないので以下のようにする。
$ curl -H "Origin: http://example.com" --verbose http://localhost:8000/api/threads/?format=json * Trying ::1... * TCP_NODELAY set * Connected to localhost (::1) port 8000 (#0) > GET /api/threads/?format=json HTTP/1.1 > Host: localhost:8000 > User-Agent: curl/7.58.0 > Accept: */* > Origin: http://example.com > < HTTP/1.1 200 OK < Date: Sat, 16 Jun 2018 07:01:41 GMT < Server: WSGIServer/0.2 CPython/3.6.5 < Content-Type: application/json < Vary: Accept, Cookie < Allow: GET, POST, HEAD, OPTIONS < Content-Length: 374 < Access-Control-Allow-Origin: * < X-Frame-Options: SAMEORIGIN < * Connection #0 to host localhost left intact [{"id":2,"name":"Thread2","description":"this is thread 2.","url":"thread-2","views":49,"category":{"id":1,"name":"プログラミング"},"tag":[{"id":2,"name":"Java"}]},{"id":1,"name":"Thread1","description":"this is thread 1.","url":"thread-1","views":4,"category":{"id":1,"name":"プログラミング"},"tag":[{"id":3,"name":"Deep Learning"},{"id":1,"name":"Python"}]}]
OK。
curlのやり方は以下を参考にした。
stackoverflow.com
Pythonのxrange(3系からは撤廃)とシーケンス型
xrangeとは
Youtubeを徘徊しているとすごく面白そうなものが…!
帰ったら真似してみよう。
機械学習で日本酒をクラスタリング Part1 スクレイピング編
途中、forループでxrangeというものをみたけどrangeと何が違うのか。
Pythonで使うrangeとxrangeについて - のんびりしているエンジニアの日記
上のブログによると
・rangeより早い
・rangeはリスト型、xrangeは不透明なシーケンス型
って感じっぽい。
シーケンス型とは
不透明の部分は置いておいて、シーケンス型って何ってことで調べた。
シーケンス型 - Python学習講座
上のブログによると
・配列やリストみたいな順番に処理するデータ構造の一つ
・文字列、リスト、タプル、range型の4つある
range型の説明を見ると「イミュータブルなシーケンスを作成するオブジェクト」
わからなくなってきた。
xrange、3系からは撤廃
他のサイトも見てみようと思って調べてみたらどうやら3系からはxrangeが無くなったらしい。
そしてxrangeはその都度必要な値を生成するから要素数が大きいと効率良いよってことでまとめられてる。
そして3系からはrangeがxrangeに近い実装になった為無くなった、と。
rangeとxrange | Python-izm
なんだ。2系使ってないし気にすることでもなかったのか。
【React】Udemyの講座で学んだことまとめ
対象講座
ここでReactを学んだ。 色々学んだことが多かったけど絶対忘れるので適宜メモしていく。 www.udemy.com
5,7
6(Section1のインストール関連)
11
12,13
18
setStateは状態の更新と、renderの呼び出しを行う。
21
// handleNameChange(e) { // console.log(e.target.value) // this.setState({ name: e.target.value }); // } handleNameChange(name) { this.setState({ name }); } <input type="text" value={this.state.name} // onChange={e => this.handleNameChange(e)} onChange={e => this.handleNameChange(e.target.value)} />
22
JSXファイルでもtabキーでHTMLの保管をする(Atom)
$ apm install emmet
Atom > Keymap... で、keymap.csonに以下を追加
'atom-text-editor[data-grammar="source js jsx"]': 'tab': 'emmet:expand-abbreviation-with-tab'
【djangoのエラー】'ModelBase' object does not support indexing
久しぶりにdjangoでmodelを書いていたら大して嵌ってないけど見たこと無いエラーを見たのでメモ。
エラー1
エラー文
anime = models.ManyToManyField('アニメ', Anime, blank=True)
'ModelBase' object does not support indexing
解決方法
anime = models.ManyToManyField(Anime, blank=True, related_name='animes')
エラー2
エラー文
name = models.CharField('名前', max_length=255, unique=True)
ManyToManyでなければ文字列を書くとadminサイトにその文字で反映される。
anime = models.ManyToManyField('アニメ', Anime, related_name='animes',blank=True)
しかしこうすると、、、
__init__() got multiple values for argument 'related_name'
こんなエラーが出る。
解決方法
anime = models.ManyToManyField(Anime, related_name='animes',blank=True, verbose_name='アニメ')
verbose_nameに値を渡して解決。
日本語名がadminサイトで見れるようになった。
【django】runserver時にWinError 10013
家で作ってgithubに上げておいたプログラムをrunserverしようとしたらエラーが出たのでメモ。
実行環境
OS | Win10 |
django | 2.0.5 |
問題となるエラー
$ python .\manage.py runserver Performing system checks... System check identified no issues (0 silenced). May 16, 2018 - 11:02:58 Django version 2.0.5, using settings 'portfolio.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. Error: [WinError 10013] アクセス許可で禁じられた方法でソケットにアクセスしようとしました。
因みにこのエラー、英語だと
「An attempt was made to access a socket in a way forbidden by its access permissions 」となる。
解決策
結論から言うと解決策はポートを変更すること。
$ python manage.py runserver 8080
原因
デフォルトのポートが別で使用されている。