Pythonのimportについてのメモ
Pythonにはimport文が2種類あり、
絶対import
.
を使用しない方法。sys.path
で確認できるモジュール検索パスに登録されているパスからimportできる。
なお、sys.path
にはカレントディレクトリが登録されるが、そのパスをもとにimport対象を解決するケースに注意。カレントディレクトリが異なるとModuleNotFoundError
が発生する。
Pythonの相対インポートで上位ディレクトリ・サブディレクトリを指定 | note.nkmk.me
相対import
.
を使用する方法。
参考文献
Pythonの相対インポートで上位ディレクトリ・サブディレクトリを指定 | note.nkmk.me
flask run したときのFlaskのアプリの探し方
flask run --app <application name>
でFlaskアプリケーションを実行できますが、アプリケーションであるapp = Flask(__name__)
をFlaskがどのように探すかについてです。
msiz07-flask-docs-ja.readthedocs.io
上記に記載の通り、
そのため、以下のチュートリアルアプリの場合は、create_app関数を定義しているので、ここから見つけ出されるようです。
リダイレクトするとGET?POST?
作成中のFlaskアプリにて、redirect()を使用して指定したURLに遷移させるようにしています。
このとき、「クライアントはページをGETで取得するのかPOSTで取得するのかどっち?」という疑問を持ちました。
ググったところ、以下の記事がヒットしまして、ステータスコードで異なるようですがおおよそGETで取得されるみたいです。
Flaskアプリにて「code 400, message Bad HTTP/0.9 request type」と出た
以下サイトにてFlaskを勉強中のエラー解消の備忘録です。
msiz07-flask-docs-ja.readthedocs.io
以下のコマンドを実行して「Running on http://127.0.0.1:5000」と出たのですが、ctrl + clickすると「このサイトは安全に接続できません」エラー画面になりました。
flask --app flaskr --debug run
悩んだのですが、URLをよく見るとhttpsになってました。 httpに直すと無事アクセスできました。
Flaskチュートリアルのメモ1
以下のサイトでFlaskについて勉強中です。
msiz07-flask-docs-ja.readthedocs.io
サイト内の以下コードについての調査メモです。
import sqlite3 import click from flask import current_app, g def get_db(): if 'db' not in g: g.db = sqlite3.connect( current_app.config['DATABASE'], detect_types=sqlite3.PARSE_DECLTYPES ) g.db.row_factory = sqlite3.Row return g.db def close_db(e=None): db = g.pop('db', None) if db is not None: db.close()
'db' not in g
gはリクエストごとに使用する一時的なデータを格納できるオブジェクトとのこと。
データを、キーと値のペアである辞書として持っている。
辞書のように操作できるように実装されているため、in
演算子を使用して'db'
キーがあるかを確認できる。
detect_types=sqlite3.PARSE_DECLTYPES
データベースの各列の値の型を自動的に解釈して、適切なPythonの型に変換できるオプション。
g.db.row_factory = sqlite3.Row
SELECTした結果を参照する方法をrow_factory
にて指定できる(?)。
ここにsqlite3.Row
を指定することで、SELECTした行をsqlite3.Rowオブジェクトとして扱える。
sqlite3.Rowとして扱うと、カラム名に基づいて値を参照できる。
sqlite3 --- SQLite データベースに対する DB-API 2.0 インターフェース — Python 3.9.17 ドキュメント
VSCodeでNeovimを使う
VSCodeでNeovimの拡張機能を使用するための手順メモです。
以下記事を参考に実施しました。
前提
- PCはWindows11 Home
- VSCodeは導入済み
Neovimのインストール
以下サイトよりダウンロードして実行。(C:\Program Files\Neovim
へインストールされる。)
PCを再起動
インストール時に、C:\Program Files\Neovim\bin
へのパスは環境変数に登録されるが、それをPCに反映するため(?)、PCを再起動する
neovimの確認
コマンドプロンプトにてnvimと入力して、neovimが起動することを確認
VSCode Neovim拡張機能のインストール
VSCodeにて以下をインストール
VSCodeにてNeovim用の設定
冒頭のQiita記事を参考に、以下を実施
- init.vimを作成
- 「拡張機能の設定」の「Neovim Executable Paths: Win32」を設定
- 「拡張機能の設定」の「Neovim Init Vim Paths: Win32」を設定
TODO
- Keybindingを編集して使いやすいようにする
- 閉じ括弧
)
の外にすぐに出られるようにしたい。以下が参考になる? Vimmerがプログラミングを書くときの疑問(括弧編) - Qiita