zoukankan      html  css  js  c++  java
  • DAY 45 静态文件配置

     

    • 软件开发架构

    • HTTP协议

      1.四大特性

      2.数据格式

      3.响应状态码
    • 手动书写web框架

      1.纯手撸web框架

      2.基于wsgiref模块

      3.jinja2模板语法

      4.结合前端、数据库、后端框架
      # 代码的封装处理
    • 主流web框架

      1.django

      2.flask

      3.tornado
    • django的下载与启动

      注意事项
      1.计算机中文名称
         2.端口号不要冲突
         3.一个pycharm窗口就是一个独立的工程

      基本命令
      django-admin startproject mysite
         cd mysite
         python3 manage.py runserver ip:port
         python3 manage.py startapp app01
    • 小白必会三板斧

      from django.shortcuts import HttpResponse,render,redirect
      HttpResponse 返回字符串数据类型
      render 返回html页面并且也支持模板语法传值
      redirect 重定向

    主题:登录功能

    • 静态文件配置

    • request对象方法

    • pycharm如何链接MySQL

    • django如何链接MySQL

    • django orm简介(重点)

    • 数据的CURD

    静态文件配置


    """
    我们之所以能够在浏览器地址栏里面输入网址就可以拿到对应的资源
    是因为开发者早已经提前开设了该资源的访问接口
    """
    1.静态文件
    写好之后不会自动动态改变的文件资源,比如我们写好的css文件、js文件、图片文件、第三方框架文件
       我们默认将所有的静态文件都放在一个static文件夹内
       我们需要自己在django目录下创建该文件夹
      static目录下基本还会再分几个文件夹
          static
              css
                  js
              img
                  第三方文件资源
    # 在加在静态资源的时候没有开设对应的访问接口
    2.配置
      settings.py配置文件
      # 静态文件配置
      STATICFILES_DIRS = [
           os.path.join(BASE_DIR,'static')
      ]
      <script src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
    3.进阶操作
    STATIC_URL = '/static/'  # 接口前缀
       """
      如果你想要访问静态文件资源,那么必须以static开头
      <script src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
      你书写了接口前缀之后 就拥有了访问下列列表中所有文件夹内部资源的权限
      """
       # 静态文件配置
       STATICFILES_DIRS = [
           os.path.join(BASE_DIR,'static'),
           os.path.join(BASE_DIR,'static1'),
           os.path.join(BASE_DIR,'static2'),
      ]
    4.动态解析
    {% load static %}
       <link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">
       <script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js' %}"></script>

    request对象方法


    1.form表单回顾
    form表单默认使用的是get请求
      action
           控制后端提交的路径
          1.不写:默认朝当前页面地址提交数据
              2.后缀:/index/
              3.全写:https://www.mzitu.com
    method
      get
             post
    2.request对象方法
      request.method
      获取当前请求的请求方法并且结果是一个纯大写的字符串类型
      request.POST  # 直接看成是字典即可
    获取用户提交post请求过来的基本数据(不包含文件)
      get()  # 获取列表最后一个元素
          getlist()  # 获取整个列表
      request.GET  # 直接看成是字典即可
    获取url问好后面的数据
      get()  # 获取列表最后一个元素
          getlist()  # 获取整个列表
      request.FILES  # 直接看成是字典即可
    获取用户上传的文件数据
      '''form表单如果需要携带文件数据 那么要添加参数
      <form action="" method="post" enctype="multipart/form-data">
      '''
          get()  # 获取列表最后一个元素
          getlist()  # 获取整个列表
           
    """
    视图函数书写格式
    def login(request):
          if request.method == 'POST':
              return HttpResponse("我很气愤")
          return render(request,'login.html')
    """

    pycharm链接数据库


    DataBase工具栏
    下载对应的驱动即可

    django链接MySQL


    """django默认使用自带的sqlite3"""
    1.配置文件修改配置
    DATABASES = {
       'default': {
           'ENGINE': 'django.db.backends.mysql',
           'NAME': 'db666',  # 一定要事先创建好才能指定
           'HOST':'127.0.0.1',
           'PORT':3306,
           'USER':'root',
           'PASSWORD':'123',
           'CHARSET':'utf8'
      }
    }
    2.在项目文件夹或者应用文件夹内的__init__.py文件中书写固定的代码
    import pymysql
    pymysql.install_as_MySQLdb()
       
       
     create database exam default charset=utf8;

    django orm简介

    """
    orm:对象关系映射
    """
    orm目的就是为了能够让不懂SQL语句的人通过python面向对象的知识点也能够轻松自如的操作数据库

      >>>  
    对象  >>>  表里面的数据
    对象点属性 >>> 字段对应的值
    # 缺陷:sql封装死了 有时候查询速度很慢

    orm实操

    1.我们的模型类需要写在应用下的models.py文件中
    class User(models.Model):
           # id int primary key auto_increment
           id = models.AutoField(primary_key=True)
           # name varchar(32)
           name = models.CharField(max_length=32)  # CharField必须要加max_length参数
           # age int
           age = models.IntegerField()
    ****************************************************************************
    2.数据库迁移命令
    1.将数据库修改操作先记录到小本本上(对应应用下的migrations文件夹)
      python3 manage.py makemigrations
       2.真正的执行数据库迁移操作
      python3 manage.py migrate  
       # 只要动了models.py中跟数据库相关的代码就必须重新执行上述两条命令
    ****************************************************************************
    3.针对主键字段
    class User1(models.Model):
           # 如果你不指定主键 那么orm会自动帮你创建一个名为id的主键字段
           # 如果你想让主键字段名不叫id 叫uid、sid、pid等则需要自己手动指定
           username = models.CharField(max_length=32)

    字段的增删改查

    # 增
    pwd = models.IntegerField('密码',null=True)  # 该字段可以为空
    is_delete = models.IntegerField(default=0)  # 默认值

    # 改
    直接改代码然后执行数据库迁移命令即可

    # 删
    注释掉代码然后执行数据库迁移命令即可

    数据的增删改查

    # 1.查询数据
    # select * from user where name=username;
    user_obj = models.User.objects.filter(name=username).first()

    # 2.添加数据
    # insert into user(name,pwd) values(username,password);
    models.User.objects.create(name=username,pwd=password)

    # 3.查询所有的数据
    # select * from user;
    models.User.objects.all()  # [obj1,obj2,obj3,obj4]

    # 4.修改数据
    models.User.objects.filter(id=edit_id).update(name=username,pwd=password)
    edit_obj.name = username
    edit_obj.pwd = password
    edit_obj.save()

    # 5.删除数据
    models.User.objects.filter(id=delete_id).delete()

    补充

    1.针对浏览器缓存我们可以认为的限制不适用缓存
  • 相关阅读:
    模板语法
    django框架中登陆验证功能
    __call__
    JQuery基础
    JS中BOM和DOM操作
    Javascript基础
    css完结
    css深入
    css初识
    html深入解析
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/14893498.html
Copyright © 2011-2022 走看看