django之配置静态文件
使用环境:python3,新建django项目
mysql数据库还是使用test2库。
进入python3环境:
]#cdpy3/django-test1/
新建项目test5:
]#django-adminstartprojecttest5
在test5项目下创建应用bookshop:
]#cdtest5]#pythonmanage.pystartappbookshop
修改settings.py主配置文件:
]#vimtest5/settings.py#中添加应用INSTALLED_APPS=(...'bookshop',)#配置静态文件STATIC_URL='/static/'STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]#配置模板路径TEMPLATES={'DIRS':[os.path.join(BASE_DIR,'templates')],...}#配置使用mysql数据库DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'test2','USER':'root','PASSWORD':'root','HOST':'192.168.255.70','PORT':'3306',}}
创建静态文件路径:
]#mkdir-pstatic/bookshop
把静态文件,如美女图片girl1.jpg,放到test5/static/bookshop目录下。
配置根url路径:
]#vimtest5/urls.pyurlpatterns=[url(r'^admin/',include(admin.site.urls)),url(r'^',include('bookshop.urls')),]
配置应用url路径:
]#vimbookshop/urls.pyfromdjango.conf.urlsimporturlfrom.importviewsurlpatterns=[url(r'^$',views.index),]
定义视图:
]#vimbookshop/views.pyfromdjango.shortcutsimportrenderdefindex(request):returnrender(request,'bookshop/index.html')
定义html模板:
]#mkdir-ptemplates/bookshop
]#vimtemplates/bookshop/index.html<!DOCTYPEhtml><html><head><title>Title</title></head><body><imgsrc="/static/bookshop/girl1.jpg"></body></html>
此时的设置,在settings.py文件中的静态路径与html中src指定的路径是写死的,如果STATIC_URL改变设置,则页面会打不开。
由于python3中使用连接mysql数据库需要特殊处理:
]#vimtest5/__init__.pyimportpymysqlpymysql.install_as_MySQLdb()
启动django服务:
]#pythonmanage.pyrunserver192.168.255.70:8000
浏览器访问:http://192.168.255.70:8000/
显示:
如果STATIC_URL = 'images',则必须在html模板中的src要做相应修改为:<img src = "/images/bookshop/girl1.jpg" width="600" height="600" /> 两者路径必须保持一致,这个路径是逻辑上的,实际根本没有这个目录,可以达到隐藏路径的效果。
当然,可以使用一种动态的方法,在html模板中不必写死静态路径,从而实现灵活配置:
在html模板中使用static标签:
]#vimtemplates/bookshop/index.html{%loadstaticfromstaticfiles%}<!DOCTYPEhtml><html><head><title>Title</title></head><body><imgsrc="/pic/bookshop/girl1.jpg"width="600"height="600"/><br><imgsrc="{%static'bookshop/girl1.jpg'%}"width="600"height="600"/></body></html>
浏览器访问:http://192.168.255.70:8000/可见效果。
这样,仅修改STATIC_URL ='XXXX',一处逻辑路径,html模板会自动识别逻辑路径,从而完成访问资源。
django中静态文件实现即先查找逻辑路径,再查找物理存放路径。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。