Python Web框架——Django学习的第六天(配置静态文件,应用,分布式路由,模型层及ORM介绍即连接数据库)

一:静态文件配置

1.配置静态文件的访问路径(该配置默认存在)都在setting.py
通过哪个url地址找静态文件

STATIC_URL = '/static/'

说明:

  • 指定访问静态文件时是需要通过/static/xxx或
  • http://127.0.0.1:8000/static/xxx
  • [xxx表示具体的静态资源位置]

2.配置静态文件的储存路径STATICFILES_DIES
STATICFILES_DIES保存的是静态文件在服务器端的储存位置

STATICFILES_DIRS = (
    os.path.join(BASE_DIR,"static"))

注:将seetings.py文件中的csrf这一行注释

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

3.模板中访问静态文件-img标签为例
通过{%static%}
1.加载static-{%load static %}
2.使用静态资源-{% static‘静态资源路径’%}
3.样例:

<img src="{% static 'images/lena.jpg' %}">

二:Django中的应用模块

  1. 应用在Django项目中是一个独立的业务模块,可以包含自己的路由,视图,模板,模型
    !!!!!!!!
    注意!注意! 注意! 注意! 注意! 注意! 注意!
    1.添加一个app必须要添加模型类并注册app
    步骤一:
    使用manage.py中的子命令startapp创建应用文件夹
    python3 manage.py startapp music
    步骤二:
    在settings.py的INSTALLED——APPS列表中配置安装此应

2.分布式路由
Django中,主路由配置文件urls.py可以不处理用户巨头i路由,注路由配置文件的可以做请求的分发(分布式请求处理),具体的请求可以由各自的应用来进行处理。

在这里插入图片描述
配置分布式路由
步骤一:主路由中调用include函数
语法:include(’app名字.url模块名’)
作用:用于将当前路由转到各个应用的路由配置文件的urlpatterns进行 分布式处理
以http://127.0.0.1:8000/music/index为例

from django.urls import path,include
from app01 import views

urlpatterns = [
    path('',views.index_view),
    path('login/',views.login_view),
    path('mycal/',views.mycal_view),
    path('music/',include('music.urls')),
    path('sport/',include('sport.urls')),
    path('news/',include('news.urls'))
]

步骤二:应用下配置urls.py
应用下手动创建urls.py文件
内容结构同主路由完全一样

# coding=utf-8
from django.urls import path
from . import views
# urlpatterns
urlpatterns =[
    path('index',views.index_view)
]

应用下的模板
应用内部可以配置模板目录
1.应用下手动创建templates文件夹
2.settings.py中开启应用模板功能
TEMPLATE配置项中的’APP_DIRS’值为True即可
应用下templates和未曾temlates都存在时,django得查找模板规则
1.优先查找外层templates目录下的模板
2.按照INSTALLED_APPS配置下的应用顺序逐层查找

三:模型层及ORM介绍

1.模型层

模型层负责连接数据库
django连接数据库安装 mysqlclient
使用pip install mysqlclient或者在https://pypi.org/project/mysqlclient/2.1.0/#files网站上寻找.xml文件安装
具体的安装方式在:https://blog.csdn.net/qq_51269815/article/details/121942445
django配置数据库的连接主要是在:settings,py中的DATABASES里配置所数据库

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'my_site',
        'USER': 'root',
        'PASSWORD': 'root',
        'HOST': '127.0.0.1',
        'POST' : '3306'
    }
}

ENGINE——指定数据库存储引擎

'django.db.backends.mysql'
'django.db.backends.sqlite3'
'django.db.backends.oracle'
'django.db.backends.postgresql'

NAME——指定要连接的数据库的名称
USER——指定登录到数据库的密码
PASSWORD——数据库的密码
HOST/POST——连接具体数据库的IP和端口

什么时模型?

  • 模型是一个python类,他是有django.db.models.Model派生出的子类
  • 一个模型类代表数据库中的一张数据表
  • 模型类中每一个类属性都代表数据库中的一个字段
  • 模型是数据交互的接口,是表示和操作数据库的方法和方式
    2.ORM框架
    定义:ORM即对象关系映射,它是一种程序技术,它允许你使用类和对象对数据库进行操作,从而避免通过SQL语句操作数据库。
    作用:
    1.建立模型类和表之间的对应关系,允许我们通过面向对象的方式来操作数据库
    2.根据设计的模型类生成数据库中的表格
    3.通过简单的配置就可以进行数据库的切换
    ORM框架的优点:
  • 只需要面向对象编程,不需要面向数据库编写代码
  • 对数据库的操作都转化成对类属性和方法的操作
  • 不用编写各种数据库的sql语句
  • 实现了数据模型与数据库的解耦,屏蔽了不同数据库操作上的差异
  • 不再关注的是mysql、oracle~~等数据库的内部细节
  • 通过简单的配置就可以轻松更换数据库,而不需要修改代码
    缺点:
    对于复杂业务,使用成本较高
    更具对象的操纵转换成SQL语句,根据查询的结果转化为对象,在映射过程中有性能损失
    在这里插入图片描述
    模型样例:
    在这里插入图片描述
    3.数据库迁移
    迁移是Django同步您对模型所做更改(添加字段,删除模型等)到您的数据库模式的方式。

生成迁移文件——执行python mange.py makemigrations
将应用下的models.py文件生成一个中间文件,并保存在migrations文件夹中
执行迁移脚本程序——执行python manage.py migrate
执行迁移程序实现迁移。将每个应用的migrations目录中的中间文件同步回数据库
models.py


class Book(models.Model):
    title = models.CharField('书名',max_length=50,default='')
    price = models.DecimalField('价格',max_digits=7,decimal_places=2)

建成的数据库表名:app名+小写类名
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@黑夜中的一盏明灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值