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に同じ名前の静的ファイルがあると衝突します
テンプレートでの使用
モデルがいたら
MEDIA_の設定ROOT=os.path.ユーザーがアップロードしたファイルを格納するためのjoin(BASE_DIR,‘media’)
MEDIA_URL=/media/,MEDIA_ROOTのファイルはurlアドレスを確立します.
Carインスタンスを作成すると、CarのImageFieldフィールド画像がmedia/carsフォルダに保存されます.
テンプレートでの画像の使用
urlsでpyではdjangoを使用する.contrib.staticfiles.views.serve() view
これでmediaファイルが使えます.
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ファイルが使えます.