使用环境: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.pyurlpatterns = [    url(r'^admin/', include(admin.site.urls)),    url(r'^',include('bookshop.urls')),]

配置应用url路径:

]# vim bookshop/urls.pyfrom django.conf.urls import urlfrom .  import viewsurlpatterns = [    url(r'^$',views.index),]

定义视图:

]# vim bookshop/views.pyfrom django.shortcuts import renderdef index(request):    return render(request,'bookshop/index.html')

定义html模板:

]# mkdir -p templates/bookshop
]# vim templates/bookshop/index.html    Title

此时的设置,在settings.py文件中的静态路径与html中src指定的路径是写死的,如果STATIC_URL改变设置,则页面会打不开。

由于python3中使用连接mysql数据库需要特殊处理:

]# vim test5/__init__.pyimport pymysqlpymysql.install_as_MySQLdb()

启动django服务:

]# python manage.py runserver 192.168.255.70:8000

浏览器访问:

显示:

QQ截图20190102224248.png

如果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 %}    Title

浏览器访问:可见效果。

这样,仅修改STATIC_URL ='XXXX',一处逻辑路径,html模板会自动识别逻辑路径,从而完成访问资源。

django中静态文件实现即先查找逻辑路径,再查找物理存放路径。