Django 运行时出错总结

一、利用mysql作为数据库时,会报的错:

#macos
pip install Django             #version==3.1
pip install PyMySQL        #Pure Python MySQL Driver version==0.10.0

brew install mysql
pip install mysqlclient  # version==2.0.1

直接运行会报错:

version_info, _mysql.version_info, _mysql.__file__ NameError: name '_mysql' is not defined

原因:Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3,因此这里将MySQL驱动设置为pymysql

解决方法:需要在Django项目的__init__.py文件添加以下

import pymysql
pymysql.install_as_MySQLdb()

此时,仍会报错:

'mysqlclient 1.4.0 or newer is required; you have 0.10.0.'

是因为将MySQL驱动设置为pymysql,MySQLdb的版本为0.10.0,所以不够,但实际上不影响使用。因此将报错的位置注释掉就可以了。

出错文件在:/Users/xinzipanghuang/Anaconda/anaconda3/lib/python3.7/site-packages/django/db/backends/mysql/base.py

注释掉这几句:

if version < (1, 4, 0):
  raise ImproperlyConfigured('mysqlclient 1.4.0 or newer is required; you have %s.' % Database.__version__)

即可。

二、运行时可能出现的问题

1、python manage.py runserver,打开时产生的链接会报错:

You're accessing the development server over HTTPS, but it only supports HTTP.

浏览器会出现:This site can’t provide a secure connection

解决方法:
setting.pyINSTALLED_APPS添加'sslserver';
运行命令改为:python manage.py runsslserver

2、pycharm可以新建一个Django项目,做个小APP改动几个地方就可以。

新建views.py在app目录下,定义返回函数(html内容)
同时在templates目录下,添加返回的html。
修改urls.pyurlpatterns,添加刚加入的views.py函数

3、css和js路径设置问题

Django静态style文件会放在static文件夹下,需要在setting.py中添加:

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static/')]

html文件也需要相对应改为/static/***.css

Categories: PythonWeb

2 Comments

RT · 2020年9月26日 at 14:13

太感谢啦!和我的情况完全一致。爱了爱了~

xinzipanghuang.home · 2020年11月19日 at 15:58

[…] RT on Django 报错情况 […]

Leave a Reply

Your email address will not be published.