PythonとDjangoによるWebアプリ作成
PythonでWebアプリを作ってみたい!
下記の記事を見てやってみたくなったので試してみました。
https://qiita.com/okoppe8/items/4cc0f87ea933749f5a49
困った点
仮想環境の構築が上手くいかない
紹介されている下記のコマンドを流しても仮想環境がうまく作成できない
python -m venv env
env\Scripts\activate
envフォルダが作成されていることは確認できたが、env\Scripts\activateを流してもそんなフォルダは存在しないと返される。
追記
env\Scriptsフォルダのactivateではなく、activate.batを叩けということだった。
フォルダを移動した後にactivate.batを実行することで仮想環境が実行された。
実行されるとコマンドプロンプトの前に(env)と表示されるようになる。
cd env\Scripts
activate.bat
仮想環境は他の方法でも作成できる
下記の記事を見てcondaの仮想環境作成機能が使いやすいとの記載を発見。
https://blog.codecamp.jp/programming-python-virtual-environment
私のPCは以前にAnacondaを導入していたので、condaで仮想環境作成を実施してみることにした。
condaの仮想環境作成機能でうまくいく
まずはAnacondaPromptが正常に動作していることを確認する為に、python -V と打ち込み、バージョン情報が返ってくることを確認。
続いて、condaで仮想環境構築コマンドを流してみる
conda create -n ○○ ← ○○には任意の仮想環境名を指定する
アクティベートコマンドを実行
conda activate ○○ ← ○○は上で付けた任意の名称
仮想環境で実行できているか確認(作成直後は何もないが)
conda -list
仮想環境が動作していることが確認できたら、コマンド cd で今回作成した仮想環境に移動。
cd ○○
チュートリアルに沿って作業
必要なライブラリをpipでインストール
pip install -r requirements.txt
データベースの構築
python manage.py migrate
管理者ユーザーを作成
python manage.py createsuperuser
サーバー起動
python manage.py runserver
ブラウザでアクセスできるか確認
http://127.0.0.1:8000/
動作したが、管理画面でグループを登録しようとすると下記のエラーが出る
no such table: main.auth_user__old error
結果としてDjango 2.1.2のバグで、2.1.5以上で解消されているようでした。
結論
今回ハマったのはrequirements.txt内でDjangoのバージョンが2.1.2で指定されていたから。
migrationやり直せばOK!見たいな記事があって試したのですが、うまくいかず、フォルダごと一度すべて削除しました。
その上で、サンプルアプリのダウンロードからやり直しました。
ダウンロードしたrequirements.txtを下記のように変更
✕ Django==2.1.2
◯ Django==2.2.6 この時点の最新を指定しました(適宜変更してください)
これで手順通りに進めると管理画面でのグループ登録も問題なくできるようになりました。
以上
Author And Source
この問題について(PythonとDjangoによるWebアプリ作成), 我々は、より多くの情報をここで見つけました https://qiita.com/mrsr6113/items/d1433870ac5e5ff235f4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .