- 1. バックエンドに『FastAPI』、フロントエンドに『Vue.js』を用いて開発する際の『CORS』対策
- 2. [Python] 初心者向け 簡単 pythonanywhereの無料アカウントからメールを送る
- 3. 【超重要!!】Djangoでモデルのマイグレートを元に戻す方法
- 4. Python Twitter APIを使わずにツイートを収集 2020年最新版
- 5. Django個人メモ
- 6. PythonでQRコードを3行で作成してみた
- 7. Atcoder専用自動化ツール:
- 8. pyzについて調べてみた
- 9. Pythonのクラス変数は C#の staticな変数とは違うという話
- 10. 【画像処理】Numpyで幾何学的変換
- 11. urlparseのnetlocはホスト名じゃない
- 12. DeepL APIで複数の文を一度に翻訳
- 13. Seleniumでasm15を操作する
- 14. pyfigletの使用可能フォント一覧(プレビュー付)
- 15. Bayes theoremとHMMとViterbi Algorithm 備忘録
- 16. 【Project Euler】Problem 6: 2乗の和の差
- 17. MetaTrader5の最適化結果xmlファイルをDataFrameに変換する
- 18. Jupyterlabでvariabeinspectorをインストールできたが、ビルドできない問題の対処
- 19. (カード型)ボードゲームをWEB化してみたシリーズ、いきなりまとめ。
- 20. 【Project Euler】Problem 5: 最小公倍数
バックエンドに『FastAPI』、フロントエンドに『Vue.js』を用いて開発する際の『CORS』対策
バックエンドに『FastAPI』、フロントエンドに『Vue.js』を用いてWebアプリを開発する際、
それぞれローカルサーバーを立ち上げ、『Vue.js』から『FastAPI』にAPIをたたくと『CORS』エラーがでます。
これを回避するため、『FastAPI』のコードに下記を追記します。“`
from starlette.middleware.cors import CORSMiddlewareorigins = [“http://localhost:8080”]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=[“*”],
allow_headers=[“*”],
)
“`『Vue.js』のローカルサーバーは、デフォルトで”http://localhost:8080″ですので、
これを開放します。
[Python] 初心者向け 簡単 pythonanywhereの無料アカウントからメールを送る
Pythonanywhereでスクレイピングして結果をメールで送ろうと思いますが、まずはメールを送るところまで紹介したいと思います。思ったより簡単にできました。
まず、Pythonanywhereで無料でアカウントを作ります。
それから使用するGmailでダミーアカウントを作ります。もちろん、普段使っているGmailアカウントを使ってもいいのですが、パスワードをコード中に記載することになるので、お勧めしません。
また、無料ユーザーはSMTPは使えないのですが、Gmailは特別に使えるようになっているそうです。
https://help.pythonanywhere.com/pages/SMTPForFreeUsers/さっそくですが、コードです。
Gmailのアカウント名とパスワードは書き換えてください。“`python
import smtplib, ssl
from email.mime.text import MIMEText# SMTP認証情報
account = “XXXXX@gmail.com” #書き換える
password = “ZZZZZ1234”
【超重要!!】Djangoでモデルのマイグレートを元に戻す方法
# 目的
Djangoのmodels.pyでモデルを作成し、マイグレーションを行ったものの間違いを見つけて修正したい。しかし一箇所を直すためにmigrationファイルを作成するのもあとで保守がしづらくなると考え、前回(もしくはそれ以前)のバージョンに戻して情報を編集したい。# 実施環境
### ハードウェア環境
| 項目 | 情報 |
|:-:|:-:|
| OS |macOS Catalina(10.15.7) |
|ハードウェア | MacBook Air (11-inch, Early 2015) |
|プロセッサ | 1.6 GHz デュアルコアIntel Core i5|
|メモリ | 4 GB 1600 MHz DDR3 |
|グラフィックス | intel HD Graphics 6000 1536 MB |
### ソフトウェア環境
| 項目 | 情報 |
|:-:|:-:|
| homebrew | 3.3.8 |
| mysql | Ver 8.0.27 for macos10.15 on x86_64 |
| python |
Python Twitter APIを使わずにツイートを収集 2020年最新版
## twitter-scraper 更新停止
[以前書いた記事](https://qiita.com/katafuchix/items/6fd6b15685fe48f69e89) はもう使えなくなりました。## 代わりに利用するライブラリ
pytwitterscraper を使います。“`
$ pip install pytwitterscraper
“`## アカウント情報参照
TwitterのIDを取得するために、まずプロフィール情報を取得します。“`python
from pytwitterscraper import TwitterScraper
tw = TwitterScraper()
profile = tw.get_profile(name=”kabu01″)
print(profile.__dict__)
“`プロフィール情報を全部取得できていることを確認。
“`
{‘bannerurl’: ‘https://pbs.twimg.com/profile_banners/88841617/1490939034’,
‘createat’
Django個人メモ
# Django個人メモ
初めての投稿です、至らないところもあるかと思いますが復習と整理も踏まえて書きます。## Djangoに入る前に“フレームワーク“自体の理解
## MTVモデル
概要
・Model(データベースに格納されているデータ)← DB, Table関連
・Template(テンプレートファイルによって定義されたそれぞれのページのデザイン)← HTML, CSS, Javascript関連
・View(どのページを表示させるかを決定する処理)← コアとなる関数## データ構造反映
http://farewell-work.hatenablog.com/entry/2017/05/07/160813
・python manage.py showmigrations (確認)
・python manage.py makemigrations (migrationsファイル作成)
・python manage.py showmigrations(確認)
・python manage.py mi
PythonでQRコードを3行で作成してみた
## 0.はじめに
pythonを用いることで3行でQRコードを作成できるようなので、検証してみました。
##ライブラリをインストール
今回利用するqrcodeライブラリをインストールします。“`
pip install qrcode
“`## QRコードの作成
QRコードを作成します。“`
import qrcode
img = qrcode.make(‘https://www.youtube.com/watch?v=dkWzWxrINRc’)
img.save(‘qrcode.png’)
“`実行することで以下のQRコードを作成することができます。
![qrcode.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2465378/b43897b0-26ca-dfa2-9271-6f733d301564.png)
## 実行動画
pyzについて調べてみた
zipappで作られる.pyzって具体的に何やってるの?と思って調べたことをまとめておく。
## .pyzとは
Pythonとして実行できるアーカイブファイル用の拡張子。
中身はただのzipファイルだが、中に「\_\_main\_\_.py」を入れておくことでPythonファイルとして実行できる。
拡張子がPythonに紐付けされていればダブルクリックでも実行できるが、「python filename.pyz」で呼び出すこともできる
拡張子の例:.pyz, .pyw## zipappモジュール
フォルダと開始地点になるモジュール&関数を指定することで簡単にpyzファイルを作ってくれるモジュール。
コマンドラインからも実行でき、その場合はArgumentParserでいい感じにされてからcreate_archive関数が実行されている。create_archiveでやっていることは指定したフォルダに「\_\_main\_\_.py」があればただフォルダをpyzにまとめるだけ。
ない場合は引数のmainで指定されたモジュールと関数を使って\_\_main\_\_.pyを作成すると
Pythonのクラス変数は C#の staticな変数とは違うという話
#はじめに
Pythonの勉強中ですので何か間違いがあるかもしれません。もし間違いを見つけられたら、コメント欄などで教えてください。#Pythonのクラス変数
Pythonにはクラス変数というものがあり、C#のクラスのstatic変数と同じという説明をよく見かけます。しかし、これらは本当に同じように扱っていいのでしょうか。
C#のstatic変数と同じように考えてPythonでプログラミングしていると、クラス変数が期待とは異なる動作をすることがありました。以下がその例です。
“`main.py
import subclass FooClass:
bar = 1if __name__ == “__main__”:
print(f”main:FooClass.bar = {FooClass.bar}”)
sub.func()
print(f”main:FooClass.bar = {FooClass.bar}”)
sub.func()
“`“`sub.py
from main import FooClassdef func():
print(f
【画像処理】Numpyで幾何学的変換
Numpyで画像の幾何学的変換を実装してみます。
まず、使用する画像を読み込みます。
“`python
import numpy as np
import matplotlib.pyplot as pltoriginal_image = plt.imread(image_name)
if np.issubdtype(original_image.dtype, np.integer):
original_image = original_image / np.iinfo(original_image.dtype).max
plt.imshow(original_image)
“`![OriginalImage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61569/60094f35-9a69-4268-0199-fb507859ae0c.png)
画像の変換は同次座標を用いて3×3の行列で表現することができるので、画像に行列を適用する関数を定義します。
この関数内では、変換後の画像
urlparseのnetlocはホスト名じゃない
# URLからホスト名を取得したい
調べたらurllib.parse.urlparseが使えるとのこと“`python
from urllib.parse import urlparser = urlparse(“https://www.example.com/hogehoge.html”)
print(r.netloc) # >>> www.example.com
“`urlparseにURLを入れてそれのnetloc属性がホスト名を持つらしい
普通に使う分にはこれで事足りました# しかし、とある要素が入ると動かなくなる
何故かこの場合の動作がおかしくなります
“`python
from urllib.parse import urlparser = urlparse(“https://localhost:8000”)
print(r.netloc) # >>> localhost:8000
“`### いや、お前(ポート番号)何でついて来るんだ
何でなんでしょう
とりあえずこう書いてみた
“`python
from urllib.pa
DeepL APIで複数の文を一度に翻訳
DeepL API:[https://www.deepl.com/ja/docs-api/translating-text/](https://www.deepl.com/ja/docs-api/translating-text/)
複数の文を一度に翻訳したい場合、パラメータ`text`をリストにすればよい(リストの最大要素数は50)。“`sample.py
import requestsAPI_KEY = ‘__YOUR_API_KEY__’
TEXT = ‘Dragon Quest #3 is my favorite game.’
TEXT2 = ‘Dragon Quest #5 is also my favorite game.’
URL = “https://api-free.deepl.com/v2/translate”
params = {
“auth_key”: API_KEY,
“text”: [TEXT,TEXT2],
“target_lang”: ‘JA’
}req
Seleniumでasm15を操作する
# はじめに
## Seleniumとは
[Selenium](https://www.selenium.dev/)
Webブラウザを自動で操作できるツール。
多くのプログラミング言語がサポートされているが、今回はPythonを用いる。## asm15とは
[asm15 assembler for IchigoJam / IchigoLatte](https://ichigojam.github.io/asm15/) (本家)
[asm15 assembler for IchigoJam / IchigoLatte](https://mikecat.github.io/asm15/) (筆者による改造版)[IchigoJam](https://ichigojam.net/)向けのマシン語のアセンブルを目的に開発されたアセンブラ。
Webブラウザ上で入出力を行うため、ファイルとの連携は一手間かかる。※IchigoJamはjig.jpの登録商標です。
## 今回の目的
Webブラウザ自動操作ツールSeleniumでアセンブラasm15を操作し、
標準入力から受け取っ
pyfigletの使用可能フォント一覧(プレビュー付)
## pyfiglet とは
テキストをアスキーアートみたいにできるライブラリです。けっこう有名なやつなのでご存知の方もたくさんいらっしゃるのではないかと思います。https://github.com/pwaller/pyfiglet
## 筆者の環境
– Python 3.9.7
– pyfiglet 0.8.post1## 使用例
`pip install pyfiglet` でインストールしたらあとは `pyfiglet` コマンドに変換したいテキストを渡すとこんなふうに出力されます。“`
$ pyfiglet SAMPLE
____ _ __ __ ____ _ _____
/ ___| / \ | \/ | _ \| | | ____|
\___ \ / _ \ | |\/| | |_) | | | _|
___) / ___ \| | | | __/| |___| |___
|____/_/ \_\_| |_|_| |_____|_____|
“`プログラムからの使用ならこんなかんじです
Bayes theoremとHMMとViterbi Algorithm 備忘録
#概要
よく参考にさせていただいている元Google brainのYouTuberの動画がすごくわかりやすかったので、Wikipediaの例に置き換えて書き残す。前半はHMM(Hidden Markov Model)をBayes theorem視点から理解し、後半はその行動(observation)が連なったときに使用するcomputational costの低いViterbi algorithmについて理解する。
また最後にpomegranateの使い方も少し残す。ここで扱う[Wikipediaの例](https://en.wikipedia.org/wiki/Hidden_Markov_model#A_concrete_example)とは
– Hidden state: rainy, sunny
– Observation: walk, shop, clean
のよくあるHMMである。またパケージは旧来の[HMMlearn](https://hmmlearn.re
【Project Euler】Problem 6: 2乗の和の差
* 本記事は[ProjectEuler](https://projecteuler.net/about)の「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。
### 問題 6. 2乗の和の差
原文 [Problem 6: Sum square difference](https://projecteuler.net/problem=6)
**問題の要約:1から100までの2乗の和と和の2乗と差を求めよ**
比較的簡単な問題なので、pythonのmapとlambdaを使って短く書くと以下のようになります。
“`python
nl = list(range(1,100+1))
print(f”Anwer : {sum(nl)**2-sum(map(lambda x: x**2, nl))}”)
“`またちょっと凝って以下の公式を使ってみると。1行で書くことも。
“`math
(a+b+c)^2 – (a^2+b^2+c^2) \\
= 2ab+2bc+2ca
“`
MetaTrader5の最適化結果xmlファイルをDataFrameに変換する
#はじめに
PythonでMT5の最適化データを扱おうと思ったら最適化データがxmlファイルとして出てくる。しかもこのxmlファイル、構造が少々複雑で巷に出回っているxml→CSVなどの変換スクリプトがうまく動かない。じゃあこれに特化したPythonスクリプトを組んでやろうというのが本記事の目的。
Python3.7のGoogleColab環境で動かした。#全体の流れ(という名の目次)
1. ソースコード全文
2. xmlファイルの構造
3. コード解説
3. 注意#ソースコード全文
“`python
import xml.etree.ElementTree as ET
import pandas as pd#ファイルの読み込み
f = open(‘2021.08.01.xml’, encoding=’utf-8′)
xml_data = f.read()
f.close()root = ET.fromstring(xml_data)
all = []
col = []
for i in range(len(root[2][0])):
for n in ran
Jupyterlabでvariabeinspectorをインストールできたが、ビルドできない問題の対処
##トラブル
便利な拡張機能variableinspectorをインストールをして、ビルドを試したところエラーの500番が表示され、CUIから’jupyter lab build’をしろと命令された。
しかし、そこでもエラーが出てログを見てみろと言われたがイマイチ分からず…##対処法
variabeinspectorをバージョン指定せずにインストールすると、バージョン3.0.9をインストールしてしまうので、バージョン3.0.7を指定してインストールしたところうまくいった。“`
jupyter labextension install @lckr/jupyterlab_variableinspector@3.0.7
“`##参考
https://teratail.com/questions/348800
(カード型)ボードゲームをWEB化してみたシリーズ、いきなりまとめ。
先日、「THE GAME」と言うボードゲームをWEB化してみましたが、それ以外にもいくつかWEB化してみました。
そんなこんなで、いきなり過去に作ったゲームを公開します。
:::note warn
こちらは実在ボードゲームをWEB化していますが、基本的にすでにゲームをお持ち、体験したことがある方向けにUIはシンプルなものになっています。
まずは、実際にゲームを購入、体験いただいてから遊んでいただくとより楽しんでいただけるかと思います。
:::# THE GAME
こちらは一人から遊べるゲームです。どのカードをどういう順番で出していくか、頭脳を使うゲームとなっております。一番ハマったゲームです。
一人の場合は頭脳ゲーム。複数人の場合はコミュニケーションを取りながら、協力できるゲームです。## ゲーム導入
https://boku-boardgame.net/the-gameゲームの遊び方はこちらを御覧ください。
こちらは先日の記事にも掲載しています。
https://qiita.com/yanaitti/items/9260848503809c7a857d
興味が
【Project Euler】Problem 5: 最小公倍数
* 本記事は[ProjectEuler](https://projecteuler.net/about)の「100番以下の問題の説明は記載可能」という規定に基づいて回答のヒントが書かれていますので、自分である程度考えてみてから読まれることをお勧めします。
### 問題 5.最小公倍数
原文 [Problem 5: Smallest multiple](https://projecteuler.net/problem=5)
**問題の要約:1から20までの数の最小公倍数を求めよ**
比較的簡単な問題ですが、よく調べると2022年1月3日現在Google ColabのPythonのVersionは3.7.12で、mathモジュールに**lcm()**は無いようです。
“`Python
! python -V
# Python 3.7.12
“`
従ってmath.gcd()を使って作ります。“`Python
import math
def lcm(x, y):
return (x * y) // math.gcd(x, y)print(lcm(6, 4))
#