私はFileField
のモデルを作っています。私はファイルのパスの代わりに、データベースの列にファイルの内容を格納する。助言がありますか?ファイルの内容をDBに保存する
答えて
それだけで、これは私がこれは古い質問ですけど、ありますテーブル含むFileContent
これは動作しません。非ASCII文字で保存しようとする最初のバイナリファイルは、それを爆破します。 base64を使用して最初にエンコードし、データベースから読み出すときにデコードする必要があります。 – Cerin
さて、バイナリ列に保存するのはどうですか?その後、バイトのコレクションを格納できます。また、ファイル名が重要な場合は、追加の名前列に保存することもできます。
naysayersは無視してください。コンテンツを完全に制御したい場合は、ファイルをデータベースのblobフィールドに入れます。私は一般に別のフィールドにファイル名を保持するので、必要に応じてファイルを再構築することができます(ほとんどのオペレーティングシステムでファイルタイプに結びつけています)。
実際のBLOBデータは別のテーブルに保存してください。ファイルに関する情報を扱う際にパフォーマンスを犠牲にすることはありませんコンテンツそのもの以外の
naysayersが実現しないことは、データベースが単にファイルシステムの非常に最適化された形式であることです。バイトはバイトで、ディスクセクタはディスクセクタです。データベースは、ファイルシステムよりもバイトを整理して検索するほうがはるかに優れています。言うまでもなく、データベースは、ほとんどのファイルシステムよりもはるかに厳格なセキュリティを実装し、(バックアップ、サポートスタッフなどで)よりよく管理されています。
のデシベル欄含むFileContentに含むFileContent格納する管理方法保存
filecontent=form.cleaned_data.get('upload_file')
data =filecontent.read()
from django.db import connection
cursor = connection.cursor()
cursor.execute("update filecontent set filecontent=(%s) where id=(%s)",[data,obj.id])
connection.connection.commit()
cursor.close()
connection.close()
をオーバライド
非常に簡単です。それ以来、このオプションを許可するために書かれた良いコードでした。特にdjango-database-filesを参照してください。これは、DjangoのストレージAPIを使用して、すべてのFileFieldとImageFieldがその内容をデータベースに格納するようにします。ファイルシステムのローカルにファイルをキャッシュするforkもあり、データベースを使用する際の最大の注意点であるレイテンシを克服しています。
- 1. ファイルに保存し、Pythonでファイルの内容を取得する
- 2. asp.netフォームをhtmlファイルに保存し、制御内容を保存
- 3. 保存内容
- 4. tkinter OptionMenu&Entryウィジェットの内容をファイルに保存するには?
- 5. テキストボックスの内容をファイルに保存する方法
- 6. csvファイルの内容をデータフレームに保存する[Python Pandas]
- 7. <textarea>の内容をボトルにファイル保存する
- 8. richtextboxの内容をファイルに保存する
- 9. JFrameの内容をファイルに保存する方法
- 10. Rails:バイナリフィールドの内容をファイルに保存する
- 11. ファイルをシェルスクリプトの内容で保存する
- 12. jquery UI - テーブルの内容をファイルに保存
- 13. 入力ファイルの内容を変数に保存
- 14. MatlabのFigureに内容を保存する(getframeを使用せず、ファイルに保存することなし)
- 15. NSTextViewの内容を平文ファイルとして保存します
- 16. ファイルの内容をメモリに保存せずにstdoutに出力するには?
- 17. 可変内容をテキストファイルに保存
- 18. jquery tabs - タブ内のナビゲーション内のタブ内容を保存する
- 19. 保存する前にユーザーがアップロードしたファイルの内容を取得する
- 20. PNGクリップボードの内容をMac上のファイルに保存する方法
- 21. VB6 - URLの内容を文字列に保存してファイル(例:.txt)に保存する方法
- 22. 写真をMySQL DBに保存するとファイルとして保存する
- 23. Djangoで開いたファイルの内容をJavascriptに保存する方法
- 24. C++ - "std :: vector <unsigned char>"の内容をファイルに保存する
- 25. divの内容をjQuery AJAXとPHPで新しいファイルに保存する
- 26. テーブルの内容をクッキーに保存するには
- 27. カートの内容をMYSQLテーブルに保存するには
- 28. PHP - サーバーに保存せずにzipファイルの内容を読み取る
- 29. リストビューの内容をアンドロイドのテキストファイルに保存する方法は?
- 30. Oracleのビューの内容をv $ sqlに保存する方法
なぜそれをしたいですか?ファイルはファイルシステムに属します。 –
データベースに保存するバイナリデータの量はどれくらいですか?何千もの大きなバイナリファイルを格納するのと比べて、データベースにいくつかのバイナリオブジェクトを格納することには大きな違いがあります。 – Kane
はい。その決定の根拠は何ですか?なぜそれらをFSに保管しないのですか? – exhuma