質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

2回答

4181閲覧

DjangoでDBを使用しない場合

cray123

総合スコア47

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2019/03/18 01:25

Django2.1でDB(SQLite)を使用しない場合は無効にするなどの設定はないでしょうか
また、使用しない場合でもマイグレーションは行わないといけないのでしょうか
マイグレーションしないとwarningレベルでのエラーが出てしまうのでこれも出さないようにしたいです

よろしくお願いします

環境
Django2.1
python3.7
CentOS7.6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamato_user

2019/03/18 02:21

要件って何ですか? それによって答えが変わってくると思うので、補足お願いいたします
cray123

2019/03/18 02:33

ご指摘ありがとうございます Djangoで全文検索エンジン(Elasticsearch)を叩くAPIを実装予定です。 Elasticsearchにデータを置くのでデフォルトのsSQLiteが必要ないのです。 この場合、使用しないDB周りの設定はどうしておくのが正しいのでしょうか よろしくお願いします。
gh640

2019/03/18 02:49

質問させてください。 Django を使わないといけない、という決定になっていますか?それとも、 Django は選択肢のひとつですか?
cray123

2019/03/18 02:50

Djangoを使わなければいけません... はじめはDBを使うという要件だったので
t_obara

2019/03/18 03:23

単にそのままにしておくといいう選択肢はないのですか?DBへの書き込みなどしなければ良いだけのようにも思いますが。
cray123

2019/03/18 04:04

ご回答有り難うございます 私としては放っておいてもいいのですが、本番環境でははたしてそれで正しいのかと思った次第です
guest

回答2

0

前提として、DjangoはWEBフレームワークなので、

Python

1django-admin startproject mysite 2python manage.py startapp polls

で作られるデフォルトのモデルは消せませんし、存在すべきです。

使用しない場合でもマイグレーションは行わないといけないのでしょうか

使いたくないテーブルについては、models.pyに定義しなければいいだけで、models.pyに定義しなければマイグレーションする必要もありません

投稿2019/03/18 02:46

yamato_user

総合スコア2321

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cray123

2019/03/18 04:13

ご回答ありがとうございます >>使いたくないテーブルについては、models.pyに定義しなければいいだけで、models.pyに定義しなければマイグレーションする必要もありません どうやら私の知識が不足しているようです models.pyの仕様含めてDjangoのドキュメントを読み返してみます
guest

0

ご回答いただきありがとうございます。

Djangoを使わなければいけません...
はじめはDBを使うという要件だったので

「 DB を使わない」となるとツール選定の前提が大きく変わるので、私なら Django 以外の選択肢の検討に戻りますが、お立場上 Django を使わないといけない、という状況だと理解しました。

ご質問の主旨に戻ります。 DB を使わない形で Django を使うことはできると思います。

例えば、次のようなファイルを作って、これを 1 ファイルの Django プロジェクトとして動かすことが可能です。

hello.py:

python

1import sys 2 3from django.conf import settings 4from django.http import HttpResponse 5from django.urls import path 6 7 8settings.configure(DEBUG=True, ROOT_URLCONF=__name__) 9 10 11def index(request): 12 return HttpResponse('Hello World') 13 14 15urlpatterns = (path('', index),) 16 17if __name__ == '__main__': 18 from django.core.management import execute_from_command_line 19 20 execute_from_command_line(sys.argv)

ここには DB の定義が含まれませんが、次のコマンドを使えばとりあえず Django プロジェクトとして動くことを確認できます(あくまでもサンプルです)( Python 3.x / Django 2.1.x で確認しました)。

bash

1python hello.py runserver

ただ、「できる=推奨される」というわけではなくて、やはり Django は DB を使う形が基本になっていると私は思います( DB を使わずに Django を使う例は検索してもあまり出てこなかったのではないでしょうか)。その基本を覆すということは細々とした部分で自己流でいろいろ決めたり調べたりする必要があるものと思います。

おおよそこのような感じですが、細かなメリット・デメリットについてはご自身でお調べになってみてください。

ちなみに上 ↑ のサンプルは『 Lightweight Django 』という Django 書籍のサンプルを少し改変したものです。お読みになるとご参考になるかもしれません。

投稿2019/03/18 03:29

gh640

総合スコア1407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cray123

2019/03/18 04:10

ご回答ありがとうございます django初心者なのでご提示の書籍も見てみようなかと思います 散々探しても情報があまり出てこなかったので推奨されていない そもそも検討すらされていないというのは理解しております その上で、やはりDBを使わないという設定のようなものはないということでしょうか? 現在、DBを使わない形でアプリケーションが動くことは確認しているのですが、マイグレーションをしないとrun serverの際にマイグレーションしなさいといったWarningのエラーが出力されます。 無視をしてもよいのでしょうか? よろしくお願いします。
gh640

2019/03/19 11:57

「 DB を使わずに Django を使いたい」というのと「 `manage.py runserver` 実行時に migration 関係の Warning が出力されないようにしたい」というのは論点が別なので、分けて考えるようにしましょう。 > 散々探しても情報があまり出てこなかったので推奨されていない そもそも検討すらされていないというのは理解しております > > その上で、やはりDBを使わないという設定のようなものはないということでしょうか? 「DBを使わないという設定」というのは具体的にいうとどのようなものをイメージされていますか? > 現在、DBを使わない形でアプリケーションが動くことは確認しているのですが、マイグレーションをしないとrun serverの際にマイグレーションしなさいといったWarningのエラーが出力されます。 > > 無視をしてもよいのでしょうか? 前提がわからないので教えてください。「 SQLite のデータベースがすでに存在していて、 `models.py` の中にモデルを定義していて、それに対応する migration ファイルも作成している」という状況のもとで「 `manage.py runserver` で Warning が出ないようにしたい」ということですか? Woopen さんが言われるとおり > 使いたくないテーブルについては、models.pyに定義しなければいいだけで、models.pyに定義しなければマイグレーションする必要もありません だと思うのですが、いかがでしょう。
cray123

2019/03/20 01:16

返信有難うございます 分の知識不足が露呈している気がします.. アプリケーション配下の自動生成されるmodels.pyには何も書いていません(コメントのみ) その上でrun serverするときにWarningが出力されます
gh640

2019/03/20 02:47

なるほど、わかってきた気がします。 > アプリケーション配下の自動生成されるmodels.pyには何も書いていません(コメントのみ) そのプロジェクトには、ご自身(開発メンバー含む)で作られた model 定義も migration ファイルも一切無い、という理解で正しいですか? ちなみに、 > 「DBを使わないという設定」というのは具体的にいうとどのようなものをイメージされていますか? こちらの質問についてはいかがでしょう? 追加でもうひとつ質問です。 `settings.py` の `INSTALLED_APPS` の定義はどのようになっていますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問