Django 静态文件 request对象方法 pycharm和Django连接MySQL Django模型层初步了解 基本的ORM操作

科技资讯 投稿 22500 0 评论

Django 静态文件 request对象方法 pycharm和Django连接MySQL Django模型层初步了解 基本的ORM操作

目录


静态文件

一、概念

    静态文件:不经常变化的文件,主要针对html文件所使用到的各种资源。
      例如:css文件、js文件、img文件、第三方框架文件
    

    ps: Django针对静态文件资源需要单独在根目录创建一个static目录统一存放,该目录下的文件类型还有很多,例如:utils目录,plugins目录,libs目录等

      资源访问:我们的浏览器地址栏之所以可以使用路由获取到相应的资源是因为程序员提前开设了资源的接口。
    • 静态文件资源访问:默认情况下无法访问,因为我们没有提前开设静态文件资源的访问接口。

    二、静态文件的相关配置

    • 接口前缀

    STATIC_URL = '/xxx/'  # 访问静态文件资源的接口前缀(通行证
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static',  # 存储静态文件资源的目录名称
        os.path.join(BASE_DIR, 'static1',  # 存储静态文件资源的目录名称
        os.path.join(BASE_DIR, 'static2',  # 存储静态文件资源的目录名称
    ]
    '''
    接口前缀正确之后 会拿着后面的路径依次去到列表中自上而下查找 一旦找到就返回
    '''
    
      接口前缀的动态匹配
        在HTML文件中:
        {% load static %}
        <script src="{% static 'jquery.min.js' %}"></script>
        <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>
    
      在浏览器的地址栏就可以获取静态文件的资源

    form表单

    一、基本属性

      action属性: 控制数据提交的地址
        1.action=""  数据默认提交给当前页面所在的地址
      
    •   2.action="https://www.baidu.com/"  完整地址
      
    •   3.action="/index/"  朝当前服务端的index地址提交
      
      • method属性: 控制数据提交的方法
          默认是		get
        
      •   可以改		post	  method="post"
        
        • enctype属性:enctype就是encodetype就是编码类型的意思。multipart/form-data是指表单数据中由多部分构成,既有文本数据,又有文件等二进制数据。
            默认是		enctype="application/x-www-form-urlencoded"
          
        •   可以改		enctype="multipart/form-data"
          
        • PS:默认情况下,enctype的值是application/x-www-form-urlencoded,不能用于文件上传,只有使用了multipart/form-data,才能完整的传递文件数据。

          二、get和post区别

            功能不同

          2、post是向服务器传送数据。

            过程不zhi同

          2、post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

            获取值不同

          2、对于post方式,服务器端用Request.Form获取提交的数据。

            传送数据量不同

          2、post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

            安全性不同

          2、post安全性较高。

          三、前期如果要发送post请求需要主要要去配置文件注释一行CSRF的代码行

          request对象

          - 方法的基本使用
          - request.method		获取请求方式 结果是纯大写的字符串数据GET\POST
          - request.POST			获取post请求请求体里面携带的数据
          - request.POST.get(		获取列表最后一个数据值
          - request.POST.getlist(	获取整个列表数据
          - request.GET			获取网址问号后面携带的数据
          - request.GET.get(		获取列表最后一个数据值
          - request.GET.getlist(		获取整个列表数据
          
            在视图函数中针对不同的请求代码编写套路
          if request.method == 'POST':
          	return HttpResponse(
          return HttpResponse(
          

          四、pycharm和Django连接MySQL

          一、pycharm连接MySQL

            首先找到MySQL
          • 然后输入相关数据连接即可
            PS: 在第一次连接需要手动下载驱动,在连接之前最好先测试一下是否可以连接成功

          二、Django连接MySQL

            sqllite3:django自带的sqlite3是一个小型的数据库 功能比较少 主要用于本地测试,所以我们实际项目中都会替换掉它
          • 默认配置sqlite3
            修改配置文件 (无需将上面默认的删除,注释修改即可
          DATABASES = {
              'default': {
                      'ENGINE': 'django.db.backends.mysql',
                      'NAME': 'day51',
                      'HOST': '127.0.0.1',
                      'PORT': 3306,
                      'USER': 'root',
                      'PASSWORD': '123',
                      'CHARSET': 'utf8'
                  }
          }
          
            需要指定模块
            django1.X版本需要在项目目录下或者app目录下的__init__.py编写代码
              	import pymysql
              	pymysql.install_as_MySQLdb(
          
          1. django2.X及以上都可以直接通过下载mysqlclient模块解决
            pip3.8 install mysqlclient
            ps:该模块windows下载问题不大 主要是mac电脑可能有问题

          ORM

          一、ORM简介

            ORM:对象关系映射,能够让不会SQL语句的python程序员 使用python面向对象的语法来操作数据库。

          •   类					 表
            
          •   对象					 一条条数据
            
          •   对象点名字				 数据获取字段对应的值
            

          PS:ORM由于高度封装了SQL 所以有时候效率较低 我们需要自己写SQL

            ORM基本操作
            首先在models.py中编写模型类
          class UserInfo(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(
              # password varchar(32
              password = models.CharField(max_length=64
          
          1. 执行数据库迁移相关命令

            python38 manage.py makemigrations 将操作记录到小本本上(migrations

          注:前期不熟悉,建议写完整的语法,后期熟练可以偷懒

            ORM初识基本语句(后面还会有详细)
            主要在views写功能的时候使用,注意要先导入models文件
          from app01 import models
          models.类名.objects.create(    # 增
          models.类名.objects.filter(    # 查
          models.类名.objects.update(    # 改
          models.类名.objects.delete(    # 删
          

          编程笔记 » Django 静态文件 request对象方法 pycharm和Django连接MySQL Django模型层初步了解 基本的ORM操作

          赞同 (120) or 分享 (0)
          游客 发表我的评论   换个身份
          取消评论

          表情
          (0)个小伙伴在吐槽