基于昨天的学习,我又来学习django了.
今天的学习内容将更近一步让我们了解django.
目录
四.认识模型层与为django配置mysqlclient依赖包
(1)虚拟机中:Django配置mysql (安装mysqlclient依赖包)
一,静态文件
(1)什么是静态文件?
如:图片,css,js,音频,视频等
(2)配置静态文件
第一步:在django_pro项目的同级目录中创建静态文件夹static,准备静态文件
第二步: 在setting.py中设置
配置静态文件的存储路径STATICFILES_DIRS
@静态文件实战
实战之前得先准备模板要用到的静态文件.
在templates文件夹中创建test_static.html模板.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>测试静态文件</title> </head> <body> <!--方法1: 导入图片--> <img src="http://192.168.209.128:8000/static/image/黑客01.png" width="200px" height="200px"><hr> <!--方法2--> <img src="/static/image/黑客01.png" width="200px" height="200px"> {% load static %} <!--导入静态路径,访问静态文件--> <img src="{% static 'image/黑客02.png' %}" width="200px" height="200px"> <br><hr> <audio src="/static/music/demo_随风.mp3" controls="controls">第1章冰山美人</audio> <!--导入音频,这里的controls="controls" 为控制器一般导入音乐视频都要添加控制器--> <br> <video width="320" height="240" src="{% static 'media/5G科技.mp4' %}" controls="controls">5G科技 </video> </body> </html>
views.py中
from django.shortcuts import render def test_static(request): return render(request, 'test_static.html')
urls.py中
from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('admin/', admin.site.urls), path('teststatic/', views.test_static) ]
测试结果
二,django应用
(1) 创建django应用
# 应用是django项目中独立的业务模块,可以包含自己的路由,视图,模板,模型 . 在虚拟机中进入django_pro项目中输入命令:
python3 manage.py startapp 应用名.
例: python3 manage.py startapp music # 这里我们创建music应用
python3 manage.py startapp sport
(2)下载同步到本地.
(3)在settings.py的INSTALLED_APPS列表中配置安装此应用
(4). 认识应用文件
三.分布式路由
Django中,主路由配置文件(django_pro/urls.py)可以不处理用户具体路由,主路由配置文件只做请求的路由分发(分布式请求处理)。具体的请求,可以由各自的应用来进行处理
(1), 配置分布式路由
语法: include('app名字.url模块名')
作用:用于将当前路由转到各个应用的路由配置文件的urlpatterns,进行分布式处理
应用下的模板
应用内部可以配置模板目录
1、应用下手动创建templates文件夹
2、settings.py中开启应用模板功能。TEMPLATE配置中的'APP_DIRS'值为True即可,应用下的templates和外层templates都存在时,django得查找模板规则
。优先查找外层templates目录下得模板
。按INSTALLED_APPS配置下的应用顺序逐层查找
@分布式路由实战
首先咱们分别在music, sport应用下的templates中创建test_music.html模板,test_sport.html模板
父模板test_static.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>测试静态文件</title> </head> <body> <!--方法1: 导入图片--> <img src="http://192.168.209.128:8000/static/image/黑客01.png" width="200px" height="200px"> <!--方法2--> <img src="/static/image/黑客01.png" width="200px" height="200px"> {% load static %} <!--导入静态路径,访问静态文件--> <img src="{% static 'image/黑客02.png' %}" width="200px" height="200px"> <br><hr> <audio src="{% static 'music/demo_随风.mp3'%}" controls="controls">随风</audio> <!--导入音频,这里的controls="controls" 为控制器一般导入音乐视频都要添加控制器--> <br> <video width="320" height="240" src="{% static 'media/5G科技.mp4' %}" controls="controls">5G科技 </video> <!--挖坑操作---继承--> {% block name %} 这里为测试模板: 主页 {% endblock %} <h1>这里播放的节目为: {{ name }}</h1> </body> </html>
test_music.html
{% extends 'test_static.html' %} <!--继承test_static.html模板--> {% block name %} 这里是为测试: music 应用模板 {% endblock %}
test_sport.html
{% extends 'test_static.html' %} {% block name %} 这里为测试: sport 应用模板 {% endblock %}
sport应用文件中的view.py视图
from django.shortcuts import render def test_sport(request): name = '体育节目' return render(request, 'test_sport.html', locals())
music应用中的view.py视图
from django.shortcuts import render def test_music(request): name = '音乐节目' return render(request, 'test_music.html', locals())
sport应用中的分路由 urls.py
from django.urls import path from . import views urlpatterns = [ path('test/', views.test_sport) ]
music应用中的分路由 urls.py
from django.urls import path from . import views urlpatterns = [ path('test/', views.test_music), ]
主项目django_pro下的主路由urls.py, 实现路由分发
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('music/', include('music.urls')), path('sport/', include('sport.urls')), ]
结果:
四.认识模型层与为django配置mysqlclient依赖包
模型层作用:负责跟数据库之间进行通信
(1)虚拟机中:Django配置mysql (安装mysqlclient依赖包)
在虚拟机中操作
!!! 注意: 下面三步特别是第三步,必须安装在项目虚拟环境(doem01)下。
1.安装前检查是否已经安装这个依赖包
sudo apt list --installed|grep -E 'libmysqlclient-dev|python3-dev'
#若命令无输出则需要安装这个依赖包
2. sudo apt-get install python3-dev default-libmysqlclient-dev
3. pip install mysqlclient -i https://pypi.doubanio.com/simple
(2) pycharm远程连接mysql
settings.py中设置
settings.py里进行数据库得配置:修改DATABASES配置项的内容,由sqlite3改为mysql
(3)模型
什么是模型?模型是一个python类,它是由django.db.models.Model派生出来的子类
一个模型类代表数据库中的一张数据表。
模型类中每一个类属性都代表数据库中的一个字段。
模型是数据交互的接口,是表示和操作数据库的方法和方式。
今天学习就到这里.
下节咱们学 ORM(框架)----模型与数据库间的交互
&励志语录:
命运,是一个很飘渺的东西,有人相信命运,走到了塔顶,或者坠落到崖底。有人想逆天改命,但成功的几率,与中彩一样,但有了毅力,终有那么一天,前方,不再是灰色的雾。