“第60天Django-01学习笔记”
1 静态文件配置
1.1 静态文件介绍
什么是静态文件?
前端已经写好了的 能够直接调用使用的文件,如
- 网站写好的js文件
- 网站写好的css文件
- 网站用到的图片文件
- 第三方前端框架
我们将网站使用的所有静态文件
默认都放在static
文件夹中
static文件夹默认没有,需要手动创建
1.2 静态文件配置
1.2.1 回顾创建一个普通Django项目
如何在Django项目中设置静态文件?
我们先创建一个普通的Django项目
1、先在Pycharm创建Django项目-day60_Django02
2、打开terminal窗口,创建app01
3、注册app01应用
编辑setting.py文件
4、配置urls.py
文件和app01/views.py
文件
5、创建HTML文件templates/test.html
6、运行项目
访问http://127.0.0.1:8000/login
可见到test.html
页面的内容
1.2.2 静态文件配置与动态解析
使用静态文件需要先创建static
文件夹,并将静态文件都放到里面
1、创建src01
文件夹,把下载并解压的bootstrap-5.2.0-dist
文件夹放进去
2、设置静态文件的访问路径
和存储路径
编辑settings.py文件
3、静态文件动态解析
给html文件添加动态解析代码
PS: 为什么需要动态解析?
如果我们直接写路径,例如
一旦令牌名称改了
,那么这个资源将访问不到
,尤其是link很多的时候,改起来比较麻烦
4、查看效果
可见Bootstrap已生效
1.3 访问路径和存储路径
有个容易迷惑的问题,什么是访问路径?什么又是存储路径?
访问路径(令牌):
通过浏览器访问静态文件的路径,如图:
存储路径(实际存储):
静态文件实际存放的路径,如图:
2 request对象方法认识
将第一章中的test.html
修改为一个form表单页面
如需获取数据,需要name
属性
界面效果如下:
2.1 GET和POST的区别
Form表单主要有两个参数,action
和method
action参数:
1.不写 默认朝当前所在的url提交数据
2.全写 指名道姓
3.只写后缀 /login/
method参数:
1、get
2、post
本节主要介绍GET
和POST
的区别:
设置GET跟POST是通过html代码中的method
指定,如:
2.1.1 GET
GET请求会在submit时,明文传递数据,浏览器上会显示,如图
2.1.2 POST
而POST请求在submit的时候,传递的是密文数据,浏览器上不会显示,如图
注意:
在前期我们使用django提交post请求的时候 需要取配置文件中注释掉一行代码
否则,submit提交后会出现403
界面
具体报错信息是:
2.1.3 通过request获取请求信息
可以获取如下信息:
使用方法如下:
也可以用于GET和POST的判断:
3 Pycharm和Django连接MySQL的方法
3.1 Pycharm连接MySQL
有三个地方可以找到设置入口:
右上角的设置方式,如图
设置完用户名、密码等信息,连接上之后需要安装驱动
,之后可以使用语句操作数据库。
3.2 Django连接MySQL
1、Django默认用的是sqlite3数据库
2、需要在settings.py
文件中修改为mysql,比如:
3、使用pymysql连接数据库
django默认用的是mysqldb模块链接MySQL,但是该模块的兼容性不好,
需要手动改为用pymysql链接
修改init.py
文件(在项目名下的init或者任意的应用名下的init文件中书写以下代码都可以)
4 Django ORM
4.1 什么是ORM?
ORM称为”关系对象映射”
作用:
能够让一个不用sql语句的小白也能够通过python 面向对象的代码简单快捷的操作数据库
不足之处:
封装程度太高 有时候sql语句的效率偏低 需要你自己写SQL语句
4.2 创建表
1、编辑models.py
文件,创建一个表(table)
2、同步数据库
3、后续新建表也是一样的,继续往下写class即可
4.3 字段的增删改
1、增:
修改models.py
文件
添加info、hobby两个字段,然后同步数据库
同步之后查看,(增)成功
2、删
删除对应的字段,再保存同步即可,如删除password字段
同步后,(删)成功
3、改
修改字段信息,再保存同步数据库即可
注意
执行完毕之后字段对应的数据也都没有了
4.4 数据的增查-案例
我们通过注册/登录页面的案例,来学习Django ORM
数据的增删改查
案例前提:
先完成3.2连接MYSQL数据库的操作
4.4.1 案例思路
基本思路:
注册页面:
提交注册信息,写入到数据库(增数据)
登录页面:
提交用户名和密码
查询数据库,验证用户名密码是否匹配(查数据)
匹配成功返回“登录成功”,否则返回“登录失败”
4.4.2 页面编写
创建登录页面template/login.html
创建注册页面template/register.html
4.4.2
4.4.3 创建数据表
编辑models.py
文件,并同步数据库
这一步要谨慎
记住:迁移文件、数据库中的表以及迁移信息的记录这三方删除的时候缺一不可,缺少任何一方都会报错。
4.4.5 设置urls
urls.py
文件
4.4.6 设置app的views
编辑app01/views.py
,完成注册登录的逻辑判断
4.4.7 测试
注册:
注册成功:
登录:
输错密码:
案例完成。
4.5 数据的删改查-案例
本案例流程:
- 将数据库中的数据展示到前端【查】
- 每个数据有两个按钮(编辑、删除)
- 编辑可以【改】数据
- 删除可以【删】数据
4.5.1 项目创建
1、PyCharm创建Django项目
2、输入命令创建app01
4.5.2 数据库配置
1、配置app01项目、连接数据库
2、编辑init.py
使用上pymysql
3、ORM创建数据库
编辑models.py
文件
同步到数据库,完成创建数据库的操作
可见数据库中增加了app01_user表
4、往数据库中添加数据
查询数据
4.5.3 配置路由匹配(Urls)
4.5.4 创建HTML页面
创建edit_user.html
创建index.html
4.5.5 页面逻辑(View)
4.5.6 测试
运行项目,测试编辑、删除功能
编辑界面
确认写到数据库
4.5.7 补充说明
真正的删除功能应该需要二次确认 我们这里先不做后面会讲
删除数据内部其实并不是真正的删除
我们会给数据添加
一个标识字段
用来表示当前数
据是否被删除
了,如果数据被删了仅仅只是讲字段修改一个状态