Django表示画像


通常、Appのルートディレクトリの下に2つのディレクトリを作成します.
staticはウェブサイトの自分のピクチャー、js、cssなどを置くために使います
Mediaは、ユーザーがアップロードした画像やファイルなどを置くために使用されます.
d:/wwwsite/office/static/images/psbがあると仮定する.jpg
urlsでpyのurlpatternsに追加:
urlpatterns = patterns('',
    url(r'^static/(?P<path>.*)', 'django.views.static.serve', {'document_root': 'd:/wwwsite/office/static'}),
)

オフィスでhtmlに追加
でいいです.
djangoはアドレスがhttp://localhost/static/images/psb.jpgd:/wwwsite/office/static/images/psbとして解析する.jpg
ただし、WindowsでWebサイトをテストするときにUnicodeDecodeErrorがある可能性があり、一部の国産ソフトウェアとレジストリの書き換えgbk符号化によりpythonがサードパーティライブラリのインストール操作を行うことができない可能性があります.
C:Python 27Libの下にあるmimetypesを開きます.pyファイル、約256行(Notepad++の検索機能を使うことができます)を見つけました
‘default_encoding = sys.getdefaultencoding()’.
この行の前に3行を追加すると、次のようになります.
if sys.getdefaultencoding() != 'gbk':  
    reload(sys)  
sys.setdefaultencoding('gbk')
default_encoding = sys.getdefaultencoding()

しかし、この処理方法では、各Appにurlpatternが追加され、静的にはdjangoの処理が必要であり、速度が遅すぎる.
参照可能http://hgoldfish.com/blogs/article/77/を選択します.
新しいDjangoは、すべての静的ファイルを自動的に一緒に配置する方法を提供します.Appを書くときにstaticサブディレクトリを作成して静的ファイルを保存すればいいだけです.開発段階では、マッピングに気を使う必要はなく、urlsを構成する必要はありません.py.
本番環境に配置する場合は、Apacheを設定してSTATICに/static/マッピングするだけです.ROOT.次にmanageを実行します.py collectstatic,自動STATICFILES_DIRSリストのディレクトリと各Appの下のstaticサブディレクトリのすべて
ファイルをSTATIC_にコピーROOT.コピープロセスは元のファイルを上書きする可能性があるので、私たちが苦労して作った静的ファイルをここに置くことはできません.
開発段階でDjangoは/staticをdjangoにマッピングする.contrib.staticfilesというアプリ.staticfilesが自動的にSTATICFILESからDIRS、STATIC_ROOTおよび各Appのstaticサブディレクトリで静的ファイルを検索します.いったん布署すると
開発環境へpyは書き直す必要はありません.Apacheのプロファイルにマッピングを書けば、/staticはApacheで処理されます.django.contrib.staticfilesはまだ存在しますが、受信しません
/static/で始まるパスなので、機能しません.Djangoでは処理速度が遅くなる心配はありません.また、settings.DEBUG is Falseの場合、staticfilesは自動的に閉じます.
urlsでは必要ありませんpyのurlpatternsに追加し、imgに追加する限り
#直接使用
{% load staticfiles %}


#変数方式使用
{% load staticfiles %}  

変数の使用にはviewを追加する必要があります
from django.shortcuts import render_to_response
def index(request):  
    return render_to_response('index.html', {'user_stylesheet': 'css/user.css'})

同時にsetting.pyに追加
STATIC_URL = '/static/'
STATICFILES_DIRS = (
     os.path.join(BASE_DIR, 'static').replace('\\', '/'),
)

(MEDIAの設定は
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
MEDIA_URL = '/media/'

)