美文网首页
django部分报错和解决方法、cookie、session说明

django部分报错和解决方法、cookie、session说明

作者: 简单可靠才可信 | 来源:发表于2020-02-25 10:27 被阅读0次

    报这种类似的错:django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None

    解决办法:

    找到Python安装路径下的Python\Lib\site-packages\django\db\backends\mysql\base.py文件

    将文件中的如下代码注释

    if version < (1, 3, 3):
        raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)
    

    报错: File "D:\SoftwareIntsall\Python\lib\site-packages\django\db\backends\mysql\operations.py", line 146, in last_executed_query

    query = query.decode(errors='replace')

    AttributeError: 'str' object has no attribute 'decode'

    解决办法:

    File "...\django\db\backends\mysql\operations.py", line 146, in last_executed_query

    打开此文件把146行的decode修改为encode

    django导入重定向函数

    from django.shortcuts import render, redirect  # 导入重定向函数redirect
    # 函数直接返回到指定的网址下:index.html
    return redirect('/index')
    

    报错:Forbidden (403) CSRF verification failed. Request aborted.

    解决办法:

    注释setting.py文件下的MIDDLEWARE列表下的代码

    'django.middleware.csrf.CsrfViewMiddleware'
    

    ajax:异步的JavaScript

    作用:在不重新加载页面的情况下,对页面进行局部的刷新。

    方法1:
    $.ajax({
        'url': '请求地址',
        'type': '请求方式',
        'dataType': '预期返回的数据格式',
    }).success(function(data){
        //执行成功后的回调函数
        alert(data);
    })
    方法2:
    $.ajax({
        'url': '请求地址',
        'type': '请求方式',
        'dataType': '预期返回的数据格式',
        'success': function (data) {
            // 执行成功后的回调函数
            alert(data);
        }
    })
    

    Cookie状态保持(保存在浏览器端)

    设置cookie信息:需要一个HttpResponse类的对象或者是它子类的对象(HttpResponseRedirect, JsonResponse),设置cookie过期时间可以使用max_age或expires属性
    response = HttpResponse('设置cookie信息')
    # max_age是秒为单位设置cookie的过期时间,此时设置两周后过期,max_age设置的是多少秒之后
    response.set_cookie('num', 1, max_age=14*24*3600)
    # 同上一样设置两周后过期,expires设置的是日期
    response.set_cookie('num2', 2, expires=datetime.now() + timedelta(days=14))
    
    1. 以键值对方式进行存储

    2. 通过浏览器访问一个网站时,会将浏览器存储的跟网站相关的所有cookie信息发送给该网站的服务器。

    存放位置:request.COOKIES

    1. cookie是基于域名安全的

    2. cookie是有过期时间的,如果不指定,默认关闭浏览器之后cookie就会过期

    session状态保持(保存在服务器端)

    session 存储在服务器端

    session 的特点:

    1) session 是以键值对进行存储的。

    2) session 依赖于cookie。唯一的标识码保存在sessionid cookie中。

    3) session 也有过期时间,如果不知道,默认两周就会过期。

    设置session:

    request.session['username'] = 'admin'

    获取session:

    request.session['username']

    相关文章

      网友评论

          本文标题:django部分报错和解决方法、cookie、session说明

          本文链接:https://www.haomeiwen.com/subject/pfszqhtx.html