学习笔记(5)---创建django应用,静态文件配置,分布式路由,认识模型层,为django配置mysqlclient依赖包.

基于昨天的学习,我又来学习django了.

        今天的学习内容将更近一步让我们了解django.

目录

一,静态文件

(2)配置静态文件

@静态文件实战

二,django应用

(1) 创建django应用

三.分布式路由

@分布式路由实战

四.认识模型层与为django配置mysqlclient依赖包

(1)虚拟机中:Django配置mysql  (安装mysqlclient依赖包)

(2) pycharm远程连接mysql

&励志语录:


一,静态文件

 (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

进入mysql,创建数据库,和用户名密码,并授权远程连接。连接navicat_for_mysql

(2) pycharm远程连接mysql

settings.py中设置

        settings.py里进行数据库得配置:修改DATABASES配置项的内容,由sqlite3改为mysql

(3)模型

什么是模型?模型是一个python类,它是由django.db.models.Model派生出来的子类

一个模型类代表数据库中的一张数据表。

模型类中每一个类属性都代表数据库中的一个字段。

模型是数据交互的接口,是表示和操作数据库的方法和方式。

今天学习就到这里.

下节咱们学 ORM(框架)----模型与数据库间的交互

&励志语录:

          命运,是一个很飘渺的东西,有人相信命运,走到了塔顶,或者坠落到崖底。有人想逆天改命,但成功的几率,与中彩一样,但有了毅力,终有那么一天,前方,不再是灰色的雾。

        

        

                                            

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值