Django静的ファイル

3441 ワード

Static
staticとは、静的なcss jsファイルなどを指す.
方法:
1.settingsでINSTALLED_を設定するAPPS追加
'django.contrib.staticfiles',
2.追加を続行
STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), )
appで使用する静的ファイルをmy_に配置app/static/my_appではmy_などapp/static/my_ap.my_image.jpg. もちろんそのままmy_に置いてもいいですapp/staticではありますが、そうすると、異なるappに同じ名前の静的ファイルがあると衝突します
テンプレートでの使用
{% load staticfiles %}  <img src="{% static "my_app/myexample.jpg" %}" alt="My image"/>

Media
media ,Model FileFIed,ImageField
 

モデルがいたら
 
from django.db import models    
class Car(models.Model):
     name = models.CharField(max_length=255)
     price = models.DecimalField(max_digits=5, decimal_places=2)
     photo = models.ImageField(upload_to='cars')
 

MEDIA_の設定ROOT=os.path.ユーザーがアップロードしたファイルを格納するためのjoin(BASE_DIR,‘media’)
 

MEDIA_URL=/media/,MEDIA_ROOTのファイルはurlアドレスを確立します.
 

Carインスタンスを作成すると、CarのImageFieldフィールド画像がmedia/carsフォルダに保存されます.
 
>>> car = Car.objects.get(name="57 Chevy")  
>>> car.photo <ImageFieldFile: chevy.jpg>
>>> car.photo.name u'cars/chevy.jpg'
>>> car.photo.path u'/media/cars/chevy.jpg'
>>> car.photo.url u'/media/cars/chevy.jpg'
 

テンプレートでの画像の使用
 
<img src="{{ car.photo.url }}" alt="My image"/>
 

urlsでpyではdjangoを使用する.contrib.staticfiles.views.serve()   view
 
from django.conf import settings 
from myapp import settings
from django.conf.urls.static import static
urlpatterns = patterns('',
# ... the rest of your URLconf goes here ...
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 

これでmediaファイルが使えます.