接口就是一个网址
一、静态文件
不需要经常改变的文件,主要针对HTML文件所用到的资源,在django中,要提前手动创建一个文件夹,static,然后里面自己再分门别类一下
# 比如说图片,JS文件,CSS文件,第三方模块
# 如果静态文件,没有开设接口,浏览器是拿不到静态文件的
django针对静态文件开接口,做好了优化
二、静态文件相关配置**
settings.py里底部添加如下,注意必须纯大写哦,尤其是django1,下面的代码不会有提示,必须自己背
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
接口前缀的动态匹配
{% %} 是django魔法语法
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css'%}">
<script src="{% static 'bootstrap-3.4.1-dist/js/bootstrap.min.js' %}"></script>
这样改好后,以后只管去改settings里通行证的值,其他就完全不用动,会自动匹配
三、请求方法
URL:统一资源定位符(网址)
其实我们写的form表单的属性中还有一个属性,method,负责请求的方法,默认是GET请求
1.GET请求
朝服务端索要数据
-
可以携带额外的数据
通过 网址后面跟问好 通过双打等号形式携带数据 后端获取为 键值对
-
上述携带数据的方式有两个限制
数据只能是简单无关紧要的非敏感数据
数据的大小有限制 2kb-8kb左右
GET请求没有请求体(HTTP数据格式)
2.POST请求
朝服务端提交数据
-
可以携带额外的数据
数据都是放在请求体中 并且数据大小没有限制
-
安全性较高
3.改完POST请求后的操作
当我们直接改了method的属性为POST后,重新加载我们创的登录页面发现点击提交按钮后,页面报错403,意思是没有权限
此时,需要我们去改settings.py中的一个东西
四、request对象***
1.后端拿到请求方法
request.method 获取请求方式,结果是纯大写的字符串数据
GET/POST
request.GET 获取Url ?携带的非敏感数据
request.POST 获取请求体里面的数据
request.POST .get() 获取列表最后一个数据值
request.POST .getlist() 获取列表
五、pycharm链接数据库
第一步:
首先,我们找到Pycharm左下角的Database点进去
第二步:
点击小加号,选择Mysql,点进去
第三步:
注意页面左下方是否有橙色感叹号,如果有点一下下载
第四步:
其他的看着填,然后要选一下库名字,这个一次只能链接一个库,都做好了点一下左下角TEST,如果打绿色勾,点OK即可
第五步:
简单使用
六、Django链接数据库***
去改Settings里的DATABASES
# 注意 如果改了后,可能报错
django1.11 版本需要在项目或者应用目录下的__init__.py中编写一行代码
import pymysql
pymysql.install_as_MySQLdb()
django2.2 以上版本需要使用mysqlclient模块,去pip下一下即可
# 把默认的改为这个!!!
# django默认使用的是sqlite3 但是这款数据库 一般用于本地测试 功能很少,所以要改为mysql,这个会自动提示
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'day51', # 库的名字
'HOST': '127.0.0.1', # 剩下就是自己的mysql的信息
'PORT': 3306,
'USER': 'root',
'PASSWORD': 密码,
'CHARSET': 'utf8'
}
}
七、ORM*******
1.介绍:
对象关系映射
能让不会sql语句的python程序员,使用面向对象的语法来操作数据库
极大的提高了开发效率
ORM由于高度封装了SQL,有时候效率低,需要自行写SQL
2.基本使用
1.先在models.py中编写模型类
class GirlsInfo(models.Model):
# id int primary key auto_increment
# 字段名 = 字段类型 + 约束条件
id = models.AutoField(primary_key=True)
# name varchar(32)
name = models.CharField(max_length=32)
# age int
age = models.IntegerField()
2.执行数据库迁移相关命令
python38 manage.py makemigrations 将操作记录到小本本上(migrations)
python38 manage.py migrate 将操作同步到数据库上
from app01 import models
models.类名.objects.create()
models.类名.objects.filter()
models.类名.objects.update()
models.类名.objects.delete()
# 1.创建数据
models.GirlsInfo.objects.create(name=name,age=pwd)
# 2.查询数据
res = models.GirlsInfo.objects.filter(name=name)
print(res) # [数据对象,] queryset
print(res[0])
print(res[0].id)
print(res[0].name)
print(res[0].age)
# 3.修改数据
models.GirlsInfo.objects.filter(id=1).update(name='jason',age=123)
# 4.删除数据
models.GirlsInfo.objects.filter(id=1).delete()
今日其他小知识补充:
- 更改浏览器页面缓存服务
浏览器页面内右键检查——设置小齿轮——勾上停用缓存(开发工具打开时)