static files指一些用到的像CSS,javascr 3.將某個app要用的靜態文件放置到my_app/static/my_app中,例如my_app/static/my_app/my_image.jpg. 當然也可以直接放在my_app/static中,但這樣的話,如果在不同的app中有相同名字的靜態文件,就會產生沖突。 4.模板中使用 5.如果有些不是某個app特用的靜態文件,可以建立static文件夾將靜態文件放置其中,settings設置: 在部署階段,設置 然后運行 將各個app內的靜態文件及STATICFILES_DIRS內的靜態文件收集起來放置到STATIC_ROOT中由服務器apache或nhinx管理即可。 MEDIA:指用戶上傳的文件,比如在Model里面的FileFIeld,ImageField上傳的文件。 假如有個Model 設置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文件了。{% load staticfiles %}<img src="{% static 'my_app/myexample.jpg' %}" alt="My image"/>STATICFILES_DIRS = ( os.path.join(BASE_DIR, "static"), '/var/www/static/',)
STATIC_ROOT = "/var/www/example.com/static/"
python manage.py collectstatic
Media管理
from django.db import modelsclass Car(models.Model): name = models.CharField(max_length=255) PRice = models.DecimalField(max_digits=5, decimal_places=2) photo = models.ImageField(upload_to='cars')
>>> car = Car.objects.get(name="57 Chevy")>>> car.photo<ImageFieldFile: chevy.jpg>>>> car.photo.nameu'cars/chevy.jpg'>>> car.photo.pathu'/media/cars/chevy.jpg'>>> car.photo.urlu'/media/cars/chevy.jpg'
<img src="{{ car.photo.url }}" alt="My image"/>from django.conf import settings #from myapp import settingsfrom django.conf.urls.static import staticurlpatterns = patterns('', # ... the rest of your URLconf goes here ...) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
新聞熱點
疑難解答