一:静态文件配置
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中的应用模块
- 应用在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名+小写类名