首页 > 其他分享 >django框架03

django框架03

时间:2022-09-01 00:12:35浏览次数:56  
标签:03 框架 文件 models GET request django MySQL 数据

目录

静态文件操作

静态文件资源及配置

 1.分类:
  1.1 html页面上使用的不经常改变的文件(templates文件夹):
   CSS样式文件
   JS页面动态操作文件
   第三方框架文件
   图片文件
 2.存放:static文件夹
  注:若static文件夹中的静态文件类型及文件数量过多 可以再进行优化 根据类型及页面不同操作再次进行归类
 3.静态文件的访问:静态文件也有对应的路径 因此访问需要开设对应的接口才可以访问
  注:和根据不同的数据对应不同的网址后缀类似 但由于静态文件过多及对应路径不一致
   因此需要在配置文件中进行配置(不再对应关系中做对应)
  3.1 配置文件settings中配置:
   STATIC_URL = '/static/' # 接口前缀(接口以static开头才可以访问静态文件数据)
   STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] # 将存放静态文件的文件夹路径添加到全局变量中 之后就可以访问静态文件下的所有文件数据
  3.2 动态改变接口前缀
   若接口前缀发生改变要一直在配置文件中去更改就很麻烦 因此可以动态修改接口前缀

      {% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.4.1-distt/css/bootstrap.min.css' %}">

form表单注意事项

 1.请求类型:
  1.1 GET请求:朝别人索要数据 也可以携带额外的数据
   url?xxx=yyy&zzz=ooo&aaa=bbb
   携带数据限制:数据只能是一些非敏感数据
   数据大小范围2KB~4KB左右
   GET请求没有请求体
  1.2 POST请求:超别人提交数据 也可以携带额外数据
   数据放在请求体中 数据大小没有限制
 2.form表单数据提交方式
  2.1 默认:GET请求
  2.2 修改请求类型:

      <form action="" method="post">  在html的form表单中修改
action   # 控制数据提交地址
      不写:提交至当前页面
      写后缀 
      写全称

  2.3 提交post请求 配置文件中注释一行代码 # 不注释的话报错403(可能是权限不够 也可能是又错)
    注释掉之后Django就会无法防止csrf的攻击

      MIDDLEWARE = [# 'django.middleware.csrf.CsrfViewMiddleware',]

request对象方法

 1.获取请求方式:request.method 结果是大写(GET POST)
 2.获取POST请求发送数据:request.POST 普通数据(不包含文件)
 3.获取POST请求数据列表中的最后一个数据:request.POST.get()
 4.获取键对应的整个列表:request.POST.getlist() 不管数据多少
 5.获取rul后面携带的非敏感数据:request.GET
 6.获取GET请求数据列表中的最后一个数据:request.GET.get()
 7.获取键值对的整个列表:request.GET.getlist()

pycharm连接MySQL

 1.查询pycharm提供的database按钮:在pycharm页面左下角或者页面右上角
 2.下载插件:file---settings---Plugins中搜索下载
 3.首次连接数据库需要下载对应的驱动:
  找到database按钮---加号---Data Source(选择数据库)---mysql---下载驱动
 4.在pycharm中简单的操作数据的增删改查

django连接MySQL

1.配置文件中修改配置
DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',  # 指定的数据库名
        'NAME': 'day56',   # 指定的库名
        'USER': 'root',
        'PASSWORD': '1234',
        'CHARSET': 'utf8',
        'HOST': '127.0.0.1',
        'PORT': 3306
    }
}
&emsp;2.指定连接MySQL的模块
&emsp;&emsp;2.1 django1.11版本需要在项目或者要你管呀目录下__init__.py中编写代码
  import pymysql
  pymysql.install_as_MySQLdb()

  2.2 django2.2及以上版本下载mysqlclient

django ORM

ORM

 1.ORM:对象关系映射
  类----表
  对象----记录
  对象属性----字段对应的值
  注:ORM的存在可以使不会MySQL的程序员也可以使用python语法操作MySQL

操作MySQL

 1.ORM语法操作:models.py文件下编写

# create table info(id int primary key auto_increment,name varchar(32),age int)
  class Info(models.Model):   # 产生表
    # 添加主键字段id  id int primary key auto_increment	
	id = models.AutoField(primary_key=True)  
    name = models.CharField(32)     # name字段   name varchar(32)
    age = models.IntegerField()     # age字段    age int

 2.数据库迁移/同步命令
  2.1 将models中有关数据的操作记录下来(magrations文件夹)
   python manage.py makemigrations
  2.2 将操作真正影响到数据中
   python manage.py migrate
  注:当修改了models中与数据库相关的代码 都必须执行上述命令
   可以简写 也可以指定应用单独迁移/同步
 3.主键:
  表的主键在orm中 可以不写 orm会自动添加一个id的主键 如果名字叫别的 需要自己创建

操作数据的增删改查

1.查:models.Info.objects.filter()    # 结果可以看成是一个列表套数据对象
  获取对象:可以使用first()方法 如果没有值会返回None if判断 如果是多个对象 可以使用for循环
2.增:models.Info.objects.create()
3.改:models.Info.objects.filter(id=1).update(name='liliNB')
4.删:models.Info.objects.filter(id=4).delete()

操作外键创建

 1.MySQL表与表之间的数据关系:
  一对一 外键建在查询频率高的一方
  一对多 外键建在多的一方
  多对多 创建第三张表存放两表之间的关系
 2.ORM表与表之间的数据关系
  一对一 外键建在查询频率高的一方
  一对多 外键建在多的一方
  多对多 外键写在表的任意一方 ORM会自动创建第三张表

标签:03,框架,文件,models,GET,request,django,MySQL,数据
From: https://www.cnblogs.com/040714zq/p/16644878.html

相关文章