使用环境:python3,新建django项目
mysql数据库还是使用test2库。
进入python3环境:
]# cd py3/django-test1/
新建项目test5:
]# django-admin startproject test5
在test5项目下创建应用bookshop:
]# cd test5
]# python manage.py startapp bookshop
修改settings.py主配置文件:
]# vim test5/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 -p static/bookshop
把静态文件,如美女图片girl1.jpg,放到test5/static/bookshop目录下。
配置根url路径:
]# vim test5/urls.py
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^',include('bookshop.urls')),
]
配置应用url路径:
]# vim bookshop/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$',views.index),
]
定义视图:
]# vim bookshop/views.py
from django.shortcuts import render
def index(request):
return render(request,'bookshop/index.html')
定义html模板:
]# mkdir -p templates/bookshop
]# vim templates/bookshop/index.html
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<img src="/static/bookshop/girl1.jpg">
</body>
</html>
此时的设置,在settings.py文件中的静态路径与html中src指定的路径是写死的,如果STATIC_URL改变设置,则页面会打不开。
由于python3中使用连接mysql数据库需要特殊处理:
]# vim test5/__init__.py
import pymysql
pymysql.install_as_MySQLdb()
启动django服务:
]# python manage.py runserver 192.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标签:
]# vim templates/bookshop/index.html
{% load static from staticfiles %}
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
</head>
<body>
<img src="/pic/bookshop/girl1.jpg" width="600" height="600" />
<br>
<img src="{% static 'bookshop/girl1.jpg' %}" width="600" height="600" />
</body>
</html>
浏览器访问:http://192.168.255.70:8000/可见效果。
这样,仅修改STATIC_URL ='XXXX',一处逻辑路径,html模板会自动识别逻辑路径,从而完成访问资源。
django中静态文件实现即先查找逻辑路径,再查找物理存放路径。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。