Django笔记:常见故障排除

Django框架下MySQLdb模块在python3中无法使用的问题的解决方案

  由于python3环境下目前还没有官方的mysqldb模块,Django框架中又强制要求使用mysqldb,为了解决这个问题,可以按照以下方法:

  原文链接:http://www.cnblogs.com/xwang/p/3727741.html

  在应用下的__init__中加入以下两行即可

    import pymysql
    
pymysql.install_as_MySQLdb()

也就是说,用pymysql来代替mysqldb其余均不用修改。

在python2下如果提示mysqldb相关的问题,也可以采用这个方法,用pymysql代替mysqldb

 

Microsoft Visual C++ 9.0 is required 解决办法

参考:http://blog.csdn.net/sepnineth/article/details/50562708

 

无法正常安装MySQLdb,提示:pip install mysql-python fails with EnvironmentError: mysql_config not found 

  解决办法:yum install python-devel mysql-devel

 

启动Django出现错误提示:django.db.utils.OperationalError: (1130, "Host 'node1' is not allowed to connect to this MySQL server")

  原因:这是因为mysql服务器中的mysql权限表设置问题,将user表对应的用户的host设置成%即可。

 

在命令行下运行python manage.py runserver/python manage.py createsuperuser时提示错误:ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

  原因:

    1.没有安装django

    2.设置了virtualenv虚拟环境但没有激活虚拟环境

    3.django路径没有加入到pythonpath中

    4.django版本问题

  解决办法:

    根据原因逐一排查即可,版本原因的话重装django即可:pip install django==1.11安装过程会主动覆盖原有程序

 

Linux 下运行Django时提示 No module named _sqlite3

  解决:

  1,首先安装 sqlite-devel

  yum install sqlite-devel

  2,重新编译安装Python

    ./configure

    make

    make install 

    来自 <http://blog.csdn.net/chenggong2dm/article/details/24362823

 

yum命令升级的时候报错: 

  There was a problem importing one of the Python modules
  required to run yum. The error leading to this problem was:

  No module named yum

  Please install a package which provides this module, or
  verify that the module is installed correctly.

  It's possible that the above module doesn't match the
  current version of Python, which is:
  2.7.5 (default, Sep  3 2013, 23:16:48)
  [GCC 4.6.3 20120306 (Red Hat 4.6.3-2)]

  解决方法:

    sudo vim /usr/bin/yum

    #修个python所在的路径。比如
    #/usr/local/bin/python2.6

    来自 <http://www.cnblogs.com/mfrbuaa/p/5166582.html

 

Django运行访问项目出现的问题:DisallowedHost at / Invalid HTTP_HOST header

  来自 <http://blog.csdn.net/will5451/article/details/53861092

 

安装mysqldb 后提示:ImportError DLL load failed: %1 不是有效的 Win32 应用程序

  操作系统:win7 64位,安装mysqldb 后提示:ImportError DLL load failed: %1 不是有效的 Win32 应用程序,是由于安装的32位的 MySQL-Python-1.2.3.win32-py2.exe,,只要改成64位版本的就可以了。

  如果没有找到,可以使用如下链接下载:

  32位:http://download.csdn.NET/detail/seven_zhao/6607621

  64位:http://download.csdn.Net/detail/seven_zhao/6607625

  也可以在如下地址下载:

             http://www.codegood.com/downloads

  来自 <http://blog.csdn.net/seven_zhao/article/details/16945043

 

Django使用Article.objects.filter(tag__icontains='xxx')查询的时候提示Related Field got invalid lookup: icontains错误

  原因:models类Article的tag字段使用的不是普通的Field而是manytomanyField,所以提示错误。

  解决办法:对于使用了foreignkey、onetomanyField、manytomanyField的字段,不能直接使用过滤方法,而要采用

  "本表字段__关联表的对应字段__过滤条件=xxx"这种查询方法

  同样的问题也存在于admin.py的设置中:

    This error raised if use search_fields in admin.py. E.x:

    class AnotherModel(models.Model):
      txt = models.CharField(_('Text'), max_length=255)

    class MyModel(models.Model):
      prop = models.ForeignKey(AnotherModel)

  改为:

    class MyModelAdmin(admin.ModelAdmin):
      search_fields = ('prop__txt')  #必须使用"本表字段__关联表查询字段"的方式注册

      来自 <https://code.djangoproject.com/ticket/2331>

  参考文章:  https://docs.djangoproject.com/en/1.11/ref/models/querysets/#exact

         http://blog.163.com/db_lobster/blog/static/9639092200912033535845/

posted @ 2017-05-10 22:39  zhangjpn  阅读(2239)  评论(0编辑  收藏