接口就是一个网址

一、静态文件

不需要经常改变的文件,主要针对HTML文件所用到的资源,在django中,要提前手动创建一个文件夹,static,然后里面自己再分门别类一下

# 比如说图片,JS文件,CSS文件,第三方模块
# 如果静态文件,没有开设接口,浏览器是拿不到静态文件的

django针对静态文件开接口,做好了优化

二、静态文件相关配置**

settings.py里底部添加如下,注意必须纯大写哦,尤其是django1,下面的代码不会有提示,必须自己背

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

python作为后端的后台系统框架_python作为后端的后台系统框架

接口前缀的动态匹配

{% %} 是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请求

python作为后端的后台系统框架_mysql_02

1.GET请求

朝服务端索要数据

  • 可以携带额外的数据
    通过 网址后面跟问好 通过双打等号形式携带数据 后端获取为 键值对
  • 上述携带数据的方式有两个限制
    数据只能是简单无关紧要的非敏感数据
    数据的大小有限制 2kb-8kb左右
    GET请求没有请求体(HTTP数据格式)

2.POST请求

朝服务端提交数据

  • 可以携带额外的数据
    数据都是放在请求体中 并且数据大小没有限制
  • 安全性较高

3.改完POST请求后的操作

当我们直接改了method的属性为POST后,重新加载我们创的登录页面发现点击提交按钮后,页面报错403,意思是没有权限

python作为后端的后台系统框架_django_03

此时,需要我们去改settings.py中的一个东西

python作为后端的后台系统框架_mysql_04

四、request对象***

1.后端拿到请求方法

request.method 获取请求方式,结果是纯大写的字符串数据

python作为后端的后台系统框架_mysql_05

GET/POST

request.GET 获取Url ?携带的非敏感数据

request.POST 获取请求体里面的数据

request.POST .get() 获取列表最后一个数据值

request.POST .getlist() 获取列表

五、pycharm链接数据库

第一步:

首先,我们找到Pycharm左下角的Database点进去

python作为后端的后台系统框架_数据_06

第二步:

点击小加号,选择Mysql,点进去

第三步:

注意页面左下方是否有橙色感叹号,如果有点一下下载

第四步:

其他的看着填,然后要选一下库名字,这个一次只能链接一个库,都做好了点一下左下角TEST,如果打绿色勾,点OK即可

第五步:

简单使用

python作为后端的后台系统框架_python作为后端的后台系统框架_07

六、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):  # 必须要继承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.filter().update()
models.类名.objects.filter().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()

django 模型models 常用字段

1、models.AutoField  
自增列 = int(11)
如果没有的话,默认会生成一个名称为 id 的列
如果要显式的自定义一个自增列,必须设置primary_key=True。

2、models.CharField  
字符串字段
  必须设置max_length参数

3、models.BooleanField  
布尔类型=tinyint(1)
  不能为空,可添加Blank=True

4、models.ComaSeparatedIntegerField  
用逗号分割的数字=varchar
  继承CharField,所以必须 max_lenght 参数

5、models.DateField
日期类型 date
  DateField.auto_now:保存时自动设置该字段为现在日期,最后修改日期
DateField.auto_now_add:当该对象第一次被创建是自动设置该字段为现在日期,创建日期。

6、models.DateTimeField  
日期时间类型 datetime
  同DateField的参数

7、models.Decimal  
十进制小数类型 = decimal
DecimalField.max_digits:数字中允许的最大位数
DecimalField.decimal_places:存储的十进制位数

8、models.EmailField  
  一个带有检查 Email 合法性的 CharField

9、models.FloatField  
浮点类型 = double

10、models.IntegerField  
整形

今日其他小知识补充:

  • 更改浏览器页面缓存服务

浏览器页面内右键检查——设置小齿轮——勾上停用缓存(开发工具打开时)

python作为后端的后台系统框架_python作为后端的后台系统框架_08