• 报错,贴图整理(1)


    这里是getElementByTagName("div")=============单复数的问题,给element加上s就可以了,仅仅是一个"s"的问题,把s加上就可以解决了.

    在js中我们要想改变属性的值,在console里面可以直接操作,在改变之前我们需要找到标签,然后才能改,在找标签的过程中我们需要找到具体的标签进行修改,不能找到一个标签数组去改

    egon 博客练习题: http://www.cnblogs.com/linhaifeng/articles/7267596.html#_label5

    第24题:

    这里的in出错了,在mysql里面暂时还不支持limit里面有子查询的in/all/any/some方法

    在html文档中,使用bootstrap工具的时候,遇到的问题:

    这里是出错的部分,用红色圈出来了

    这里是已经改正过了的,注意细节,两张图片对比出来就是一个空格的问题,就差在一个空格上

    在django项目里面我们的函数体,跟数据库连接的时候,报错,这里的原因是比较简单的,把相关的代码缩进到for循环里面即可,一个tab键就可以搞定的,下面的变量预警是因为他们是在for循环里面被定义的,然后我们却在for循环外面使用它了,局部命名空间的变量是不能够被全局所使用的,这里是命名空间的部分出错了

    这里是HTML标签里面的属性有缺失导致页面无法显示出预期的效果

    这里这张图的重点是method="post",我们的form表单里面需要进行一些增删改查的操作固定要有这个method这个属性,并且要根据不同的动作有不同的改变,

    模态框的标签是需要写作body的直系子标签的,要紧贴着,不能够有间隙,隔一层都不可以,

    如图所示,位置没有关系,放到前面或者后面或者中间都可以的,只要紧贴着body即可,也就是我们模态框最外层的那个div标签需要贴着左边的代码框,贴着,即可

    这里我们我的开始符号和结束符号位置需要和我们的/对应上,结束符放到我们的/外面然后再''的里面

    这里我们的引号里面,不能够加上/不能够加上/,不能够加上/, 就如图下所示,按照下面的图片写即可

     这里我们的get和filter得到的数据类型是不一样的,get是得到一个对象,而我们的filter是得到一个列表,列表取值是需要使用索引的 ,而我们的对象是可以直接去取值的

    django项目里面的标点符号问题,如果没有给我们提示的话我们就不要擅自加上空格了

    这里的报错是我们的django项目里面csrf中间件的问题:

    解决办法:

    我们的django项目里面,使用orm的时候,在python console里面,查询的时候要想显示sql语句要设置logging,然后在python console里面我们就可以得到查询的SQL语句了,

    这里的logging参数配置里面的version参数需要使用小写,如果是大写的"VERSION"的话就会报错,我们的django项目都无法运行

     

    我们找bug的时候要按照顺序来一层一层分析,先从url开始入手,然后到views函数,再到前端模板,按照顺序过一遍,不要死盯着一处去看,要着眼于多处,才有更多可能去发现问题,我们要一步一步去分析报错的原因,才能找到根源,而不是陷在一个地方,思维方式还是很重要的,否则就是过分的浪费时间,

    路由系统:

     url(r'^selog/', include(seurl)),  # 这里是路由分发
    
    # 这是子路由
    from django.conf.urls import url
    from session import views as sesviews
    
    urlpatterns = [
        url(r"^login/", sesviews.login, name='sesslogin'),
        # url(r'^home/$', sesviews.home, name='home'),
        url(r'^home/$', sesviews.home, name='home'),
        url(r"^index/$", sesviews.index, name='index'),
        url(r'^logout/$', sesviews.logout, name='logout'),
        url(r'^gettest/$', sesviews.gettest,),
    
        url(r'^login3/$', sesviews.LoginView.as_view()),
        url(r'^index3/$', sesviews.IndexView.as_view()),
    
        url(r'^login2/$', sesviews.login2,),
        url(r'^index2/$', sesviews.index2,),
    
    ]

    视图函数:

    from django.shortcuts import render, HttpResponse, redirect
    from functools import wraps
    from django.urls import reverse
    # Create your views here.
    
    
    # 简单的原始版装饰器
    def wrapper(func):
        @wraps(func)
        def inner(request, *args, **kwargs):
            cookie_k = request.get_signed_cookie('who', None, salt='s8',max_age=5)  # 我们这里的参数who设置的它,后面获取的时候也是要通过它去获取,否则参数匹配不上
    # 页面是无法出来效果的
            print(11111, cookie_k)
            if cookie_k:
                # 如果我们检测到有cookie,就证明是我们自己的用户,
                # ret = func(request, *args, **kwargs)
                ret = func(request, *args, **kwargs)
                return ret
            else:
                # 反之,如果没有检测到,就不是我们的用户,需要登录或者注册
                # return redirect('sebog/login/')
                next_url = request.get_full_path()
                print(next_url,"-------")
                return redirect('/selog/login/?next={}'.format(next_url))
                # 我们这里是路由分发的,所以需要在url里面加上前缀否则是无法得到地址的
        return inner
    
    #http://127.0.0.1:8000/selog/login/?next=home
    def login(request):
        if request.method == 'POST':
            user = request.POST.get("user")
            pwd = request.POST.get('pwd')
            if user == 'alex' and pwd == "123":
                next_url = request.GET.get('next', None)
                print(next_url)
                if next_url:
                    rep = redirect(next_url)
                else:
                    # rep = redirect(reverse('index'))
                    rep = redirect('/selog/index/')
                # return redirect('home')
                rep.set_signed_cookie('who', user, salt='s8')  # 我们的cookie失效时间不能太短了,否则我们还没有把url输入到浏览器cookie就已经失效了
                return rep
        return render(request, 'session/login.html')
    
    
    def logout(request):
        rep = redirect(reverse('sesslogin'))
        rep.delete_cookie('who')
        return rep
    
    
    @wrapper
    def index(request):
        cookie_k = request.get_signed_cookie('who', None, salt='s8')
        if cookie_k:
            # return redirect(reverse('sesslogin'))
            return render(request, 'session/index.html')
        else:
            return redirect(reverse('sesslogin'))
            # return render(request, 'session/index.html')
    
    
    @wrapper
    def home(request):
        return render(request, 'session/home.html')
    
    
    @wrapper
    def gettest(request):
        print(request.GET.get('next'))
        return HttpResponse('OK')

    前端模板:

    home

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Title</title>
    </head>
    <body>
    <h1>welcome home</h1>
    
    <button type="submit" value="put on"><a href="{% url 'logout' %}">quit</a></button>
    </body>
    </html>

    index:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Title</title>
    </head>
    <body>
    <h1>there is index page</h1>
    <button type="submit" value="put on"><a href="{% url 'logout' %}">quit</a></button>
    </body>
    </html>

    login:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Title</title>
    </head>
    <body>
    
    <form action="{{ request.get_full_path }}" method="post">
    {#<form action="/login/" method="post">#}
    {#<form action="{% url 'sesslogin' %}" method="post">#}
        {% csrf_token %}
        <input type="text" name="user" placeholder="user">
        <input type="password" name="pwd" placeholder="pwd">
        <input type="submit" value="put in">
    
    </form>
    </body>
    </html>

    我们的console里面的500错误:

    这个场景是在我们的flask里面的redis连接池里写投票系统遇到的bug

     redis.exceptions.ResponseError: WRONGTYPE Operation against a key holding the wrong kind of value

    这里是中文翻译:

     [redis.exceptions.ResponseError:WRONGTYPE针对持有错误类型值的键的操作]

    我们的这个键hell在redis里面已经做为其他的数据的键了,就不能再被重用了,换一个键的名字即可(会出现这个原因是因为我一开始用的redis,然后又在原有基础上进行了redis连接池的转换,所以我们的代码块都没有变,那么就是我们的redis里面的lpush里面的键是重复了,所以就会报这个错,)

    {原来的redis里面的key对应的数据类型不一致,key对应的数据类型一致的话,是可以插入的}

    ajax报错:“parsererror”

     这里是解析错误,后端传过来的数据没有做格式处理才会这样,需要去后端看最后返回的数据格式跟ajax里面的数据格式是否匹配,我这里ajax是用的json数据类型,后端传的是字符串没有做json。dump()的处理,我把字符串进行了dump之后就可以正常调用前端ajax的success函数了。

    执行pip install pipreqs报错:

     error: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/docopt.py'

        

    是权限不够,被拒绝下载,我在命令前加上了sudo 就可以了,

    即:

    sudo pip install pipreqs

    (报错信息很长一大串,我一时心急就把一大串都粘到搜索框去搜,结果肯定是搜不出来啊,后来慢慢理出头绪,找到了error这一行,以后遇到报错,要能分辨哪里是核心点,这样就会省很多力气,找到突破口快速解决问题)

    Can't connect to local MySQL server through socket '/tmp/mysql.sock' 

    mysql预警信息解决方案:

    python3.6 + Django2.1 + ajax

    排错了一整天,没有遇到过这样的错误,连把错误信息拿到网上都搜不到一星半点线索。。。。。。

    一开始自己一个人写前后端,出现跨域,然后在中间件里面加上了请求头信息

    ['Access-Control-Allow-Origin'] = '*'
    ["Access-Control-Allow-Methods"] = "POST,GET,OPTION,PUT,DELETE,PATCH"

    与此同时,前端没怎么写过,就连ajax的路由写法都是现查的,然后就随便找了一篇博客没有细看,粗暴的写成了这样:“http://127.0.0.1:8000/login/”

    然后在本地测试的时候,一切如常,于是推到服务器的时候,就开始报错,报同样的错,如下贴出, 

    报错信息如下:

    
    

    [DEBUG][2019-03-28 15:13:47,575][base.py:872]Exception while resolving variable 'name' in template 'unknown'.

    Traceback (most recent call last):
      File "/root/.virtualenvs/dream_envir/lib/python3.5/site-packages/django/template/base.py", line 829, in _resolve_lookup
        current = current[bit]
    TypeError: 'URLResolver' object is not subscriptable
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/root/.virtualenvs/dream_envir/lib/python3.5/site-packages/django/template/base.py", line 837, in _resolve_lookup
        current = getattr(current, bit)
    AttributeError: 'URLResolver' object has no attribute 'name'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/root/.virtualenvs/dream_envir/lib/python3.5/site-packages/django/template/base.py", line 843, in _resolve_lookup
        current = current[int(bit)]
    ValueError: invalid literal for int() with base 10: 'name'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/root/.virtualenvs/dream_envir/lib/python3.5/site-packages/django/template/base.py", line 850, in _resolve_lookup
        (bit, current))  # missing attribute
    django.template.base.VariableDoesNotExist: Failed lookup for key [name] in <URLResolver <URLPattern list> (admin:admin) 'admin/'>

    上面有关键字信息可以捕捉到,admin,URL,

    一开始测试的时候就没有考虑admin,也没有想过URL会有问题,于是一直很困惑问题出在哪里,本地和线上测试结果差太多,一直以为是线上环境的其他细节有问题,于是耽误了大把的时间。

    仔细查过了Django2.0以及ajax的URL路由写法,发现ajax路由写死了,所以线上报错;

    试过了admin无法打开页面,也是报上面同样的错,把上面处理跨域的中间件注释掉用另一个方式解决跨域。问题就解决啦啦啦

    mongo  服务启动报错:

    用命令:mongod

    错误信息如下:

    2019-04-08T17:26:11.722+0800 I CONTROL  [initandlisten] MongoDB starting : pid=6463 port=27017 dbpath=/data/db 64-bit host=dream-macdeMBP.lan
    2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten] db version v3.4.2
    2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
    2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten] allocator: system
    2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten] modules: none
    2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten] build environment:
    2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten]     distarch: x86_64
    2019-04-08T17:26:11.726+0800 I CONTROL  [initandlisten]     target_arch: x86_64
    2019-04-08T17:26:11.727+0800 I CONTROL  [initandlisten] options: {}
    2019-04-08T17:26:11.728+0800 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
    2019-04-08T17:26:11.728+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
    2019-04-08T17:26:11.735+0800 E STORAGE  [initandlisten] WiredTiger error (13) [1554715571:735657][6463:0x1144e05c0], file:WiredTiger.wt, connection: /data/db/WiredTiger.turtle: handle-open: open: Permission denied
    2019-04-08T17:26:11.751+0800 I -        [initandlisten] Assertion: 28595:13: Permission denied src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267
    2019-04-08T17:26:11.753+0800 I STORAGE  [initandlisten] exception in initAndListen: 28595 13: Permission denied, terminating
    2019-04-08T17:26:11.753+0800 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
    2019-04-08T17:26:11.753+0800 I NETWORK  [initandlisten] removing socket file: /tmp/mongodb-27017.sock
    2019-04-08T17:26:11.753+0800 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
    2019-04-08T17:26:11.753+0800 I CONTROL  [initandlisten] now exiting
    2019-04-08T17:26:11.753+0800 I CONTROL  [initandlisten] shutting down with code:100

    用命令: mongo

    错误如下:

    MongoDB shell version v3.4.2
    connecting to: mongodb://127.0.0.1:27017
    2019-04-08T17:26:54.606+0800 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
    2019-04-08T17:26:54.609+0800 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
    connect@src/mongo/shell/mongo.js:237:13
    @(connect):1:6
    exception: connect failed

    解决方法:

    进入mongo安装目录:

    cd /usr/local/mongodb/bin/

    执行命令:

    sudo ./mongod

    如下提示:

     
    Password:
    2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] MongoDB starting : pid=6693 port=27017 dbpath=/data/db 64-bit host=dream-macdeMBP.lan
    2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] db version v3.4.2
    2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
    2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] allocator: system
    2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] modules: none
    2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] build environment:
    2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten]     distarch: x86_64
    2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten]     target_arch: x86_64
    2019-04-08T18:26:09.128+0800 I CONTROL  [initandlisten] options: {}
    2019-04-08T18:26:09.129+0800 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
    2019-04-08T18:26:09.129+0800 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
    2019-04-08T18:26:09.411+0800 I CONTROL  [initandlisten]
    2019-04-08T18:26:09.411+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
    2019-04-08T18:26:09.411+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
    2019-04-08T18:26:09.411+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
    2019-04-08T18:26:09.411+0800 I CONTROL  [initandlisten]
    2019-04-08T18:26:09.420+0800 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
    2019-04-08T18:26:09.420+0800 I NETWORK  [thread1] waiting for connections on port 27017
    2019-04-08T18:26:46.084+0800 I NETWORK  [thread1] connection accepted from 127.0.0.1:57474 #1 (1 connection now open)

    出现字样

    waiting for connections on port 27017

    即是服务启动了,查看进程可以看到mongo进程

    ps -ef|grep mongod


    0 6692 2600 0 6:26PM ttys001 0:00.06 sudo ./mongod
    0 6693 6692 0 6:26PM ttys001 0:00.41 ./mongod
    501 6705 5153 0 6:26PM ttys002 0:00.01 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn mongod

    然后再开一个窗口,进入mongo

    mongo   # 这行命令是安装mongo的时候把环境配置好了,才能执行它




    MongoDB shell version v3.4.2
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.4.2
    Server has startup warnings:
    2019-04-08T18:26:09.411+0800 I CONTROL [initandlisten]
    2019-04-08T18:26:09.411+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
    2019-04-08T18:26:09.411+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
    2019-04-08T18:26:09.411+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
    2019-04-08T18:26:09.411+0800 I CONTROL [initandlisten]
    > use test
    switched to db test

    ...................持续更新中.................................

  • 相关阅读:
    驱动开发环境安装
    FireMonkey下的异形窗体拖动(句柄转换)
    Microsoft Win32 Programmer's Reference.chm
    Qt 访问网络的 HttpClient(封装QNetworkAccessManager,且有服务端)
    JBPM4 安装和配置
    DDD:谈谈数据模型、领域模型、视图模型和命令模型
    多个文件目录下Makefile的写法
    .NET程序集1
    Ajax初步理解
    Kemaswill 机器学习 数据挖掘 推荐系统 Ranking SVM 简介
  • 原文地址:https://www.cnblogs.com/2012-dream/p/8137726.html
Copyright © 2020-2023  润新知