zoukankan      html  css  js  c++  java
  • 静态文件

    静态文件

    默认情况下所有的 html 文件都是放在 templates 文件夹内的。

    什么是静态文件

    静态文件就是 网站所使用到的所有提前写好的css、js、第三方的前端模块、图片文件、都叫做静态文件资源。

    默认情况下网站所用到的静态文件资源全部都会放到static文件夹下,Django中需要手动创建这个文件夹,static 文件夹下面还可以创建其他的文件夹,将css、js文件区分开来,为了更加方便的管理文件。

    css   文件夹
    js    文件夹
    font  文件夹
    img   文件夹
    Bootstrap    文件夹
    fontawesome  文件夹
    

    静态文件的配置

    在 mysite settings.py配置文件中添加以下信息:

    • STATIC_URL:访问静态文件资源的接口后缀
    • STATICFILES_DIRS:静态文件所在的文件夹的路径
    STATIC_URL = '/static/'     # 访问静态文件的接口url路径后缀,
    STATICFILES_DIRS = [        # 静态文件资源存在的具体文件夹目录
        os.path.join(BASE_DIR,"static"),    # 将static文件里的内容暴露给用户看
        os.path.join(BASE_DIR,"static1"),    # 可以写多个,从上到下查找
    ]                           # 这样客户端通过url方式可以访问你配置的静态文件资源。
    

    静态文件动态绑定

    我们在配置好这个静态文件配置后,需要在html中动态绑定,方便实用并且可以适应静态文件路径变动

    将bootstrap文件夹放入static文件夹中,html head标签内引用以下内容。

    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    {% load static %}
    <link rel="stylesheet" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
    <script src="{% static 'bootstrap/js/bootstrap.min.js' %}"></script>
    

    注意:

    如果你的Django项目中 DEBUG 模式设置为False,那么静态文件会报404,修改为True即可正常访问(200)

    form表单回顾

    get请求

    form表单默认是get请求,可以指定为post

    那么我们也可以指定他的请求方式是post

    get请求特点:在url会显示携带的信息,信息格式:路径后缀/?xxx=xxx&yyy=xxx

    1. get请求携带的数据不安全
    2. get请求携带的数据大小有限制
    3. 通常get请求如果要携带参数的话只会携带一些不是很重要的数据

    action参数

    1. 不写,默认朝当前地址提交

    2. 只写后缀的形式:index/

    3. 写全路径的形式:https://www.baidu.com

    前期如果我们在朝后端提交post请求的时候,会出现403的情况,需要注释掉配置文件中一行内容。

    'django.middleware.csrf.CsrfViewMiddleware'
    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        # 'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    

    在django中后端的视图函数,无论是发的get请求还是post请求,都会执行视图函数,默认处理的是get请求。

    request方法初识

    我们在视图函数中定义的所有函数都必须有返回值,并且返回值都是HTTPResponse对象

    request 的部分方法

    • request.method:获取请求方式,返回的是纯大写的字符串。

    • request.GET:获取用户提交的get请求数据,返回的是列表套对象。

    • request.GET.get():获取列表中的最后一个

    • request.GET.getlist():获取列表类型的数据

    • request.POST:获取用户提交的post请求数据

    • request.POST.get():获取列表中的最后一个

    • request.POST.getlist():获取列表类型的数据

    Django连接MySQL数据库

    一、配置文件配置

    需要在settings.py配置文件中配置 db.sqlite3

    DATABASES = {
        'default': {
            'ENGINE':'django.db.backends.mysql',
            'NAME':'day50',
            'USER':'root',
            'PASSWORD':'123',
            'HOST':'192.168.32.130',
            'PORT':3306,
        }
    }
    

    二、告诉Django使用pymysql

    在项目名/应用名下的一个__init__.py中写

    import pymysql
    pymysql.install_as_MySQLdb()
    

    Django中操作ORM

    ORM简介

    ORM 对象关系映射

    python中         数据库
    类名      -->     表名
    对象      -->     数据
    对象.属性  -->  字段对应的值
    

    为什么使用ORM

    能够让不会数据库操作的人也能够简单方便的去操作数据库

    ORM的缺点

    封装程度太高,有时候会出现查询效率偏低的问题。

    编写models.py

    我们在写django项目的时候,最好一个django项目就对应一个数据库。

    class User(models.Model):
        # 如果不写主键,默认会添加一个名为id的主键,并且这个主键是自增id
        name = models.CharField(max_length=32)
        pwd = models.IntegerField()
    

    数据库迁移命令

    编写完models.py之后,我们要把表创建在MySQL数据库中,需要用到两条命令

    python3 manage.py makemigrations记录将数据的修改

    python3 manage.py migrate真正同步到数据库中

    只要修改了models.py中与数据库相关的代码,就必须重新执行上面两条命令。

    Django中模型表字段的增删改查

    对数据库中字段的修改,直接修改字段即可

    如果是新增数据库字段,要注意两点:

    • 要给新的字段设置一个默认值

      email = models.EmailField(default="qinyj@qq.com")

    • 或者设置新的字段为空

      phone = models.BigIntergerField(null=True)

    如果要删除数据字段,直接注释对应的字段即可,注意删除字段也会把数据删除

    最后的最后,记得要执行数据库的两条迁移命令

    1.python3 manage.py makemigrations  # 将数据库的修改 记录到migrations文件内
        
    2.python3 manage.py migrate         # 将修改操作真正的同步到数据库中
    

    Django中模型表数据的增删改查

    增:  
    user_obj = models.User.objects.create(username=username,password=password)
    print(user_obj,user_obj.username,user_obj.password)
    # create方法会有一个返回值  返回值就是当前被创建的对象本身
            
    删:
    models.User.objects.filter(id=delete_id).delete()
    """
    批量操作  会将filter查询出来的列表中所有的对象全部删除
    """
    
    改:
    models.User.objects.filter(id=edit_id).update(username=username,password=password)
    """
    批量操作  会将filter查询出来的列表中所有的对象全部更新
    """
            
    查:
    data = models.User.objects.filter(username=username)
    """
    filter返回的结果是一个"列表",里面才是真正数据对象
    filer括号内可以放多个关键字参数 这多个关键字参数在查询的时候 是and关系
    """
    
    user_list = models.User.objects.all()
    """
    结果是一个"列表" 里面是一个个的数据对象
    """
    
  • 相关阅读:
    Java数组和方法
    Java数组
    Java方法升级
    Java流程控制
    Java编译器的常量优化
    chrome使用技巧(看了定不让你失望)
    C 排序法
    mysql 线程池 数据库连接池
    php mysql
    深入剖析PHP输入流 php://input (转载 http://www.nowamagic.net/academy/detail/12220520)
  • 原文地址:https://www.cnblogs.com/shin09/p/11925784.html
Copyright © 2011-2022 走看看