温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

django之配置静态文件

发布时间:2020-08-11 19:55:24 来源:网络 阅读:1504 作者:crystaleone 栏目:开发技术

使用环境: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/

显示:

django之配置静态文件


如果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中静态文件实现即先查找逻辑路径,再查找物理存放路径。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI