您好,登录后才能下订单哦!
使用环境: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中静态文件实现即先查找逻辑路径,再查找物理存放路径。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。