使用Django出现的问题及解决办法

=================================================================================================

【问题一】安装好Django,并且创建好了一个项目,然后浏览器中打开时出现以下问题

=================================================================================================

DisallowedHost at /

Invalid HTTP_HOST header: '172.16..:8000'. You may need to add u'172.16.40.247' to ALLOWED_HOSTS.
Request Method:GET
Request URL:http://172.16..:8000/
Django Version:1.11.5
Exception Type:DisallowedHost
Exception Value:
Invalid HTTP_HOST header: '172.16.40.247:8000'. You may need to add u'172.16.40.247' to ALLOWED_HOSTS.
Exception Location:/usr/lib/python2.7/site-packages/Django-1.11.5-py2.7.egg/django/http/request.py in get_host, line 113
Python Executable:/usr/bin/python
Python Version:2.7.5
Python Path:
['/root/helloworld',
 '/usr/lib64/python27.zip',
 '/usr/lib64/python2.7',
 '/usr/lib64/python2.7/plat-linux2',
 '/usr/lib64/python2.7/lib-tk',
 '/usr/lib64/python2.7/lib-old',
 '/usr/lib64/python2.7/lib-dynload',
 '/usr/lib64/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages/psutil-5.3.1-py2.7-linux-x86_64.egg',
 '/usr/lib/python2.7/site-packages',
 '/usr/lib/python2.7/site-packages/setuptools-36.4.0-py2.7.egg',
 '/usr/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg',
 '/usr/lib/python2.7/site-packages/ansible-1.7.2-py2.7.egg',
 '/usr/lib/python2.7/site-packages/Django-1.11.5-py2.7.egg',
 '/usr/lib/python2.7/site-packages/pytz-2017.2-py2.7.egg']
Server time:Sat, 16 Sep 2017 04:47:28 +0000

【解决办法】

找项目的settings.py文件,将

ALLOWED_HOSTS = []  修改为

ALLOWED_HOSTS = ['*']


=================================================================================================

【问题2】python manage.py时报错如下:

=================================================================================================

[root@VM_22_86_centos test01]# python manage.py 

Traceback (most recent call last):

  File "/usr/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 31, in <module>

    from pysqlite2 import dbapi2 as Database

ModuleNotFoundError: No module named 'pysqlite2'


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/usr/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 33, in <module>

    from sqlite3 import dbapi2 as Database

  File "/usr/local/lib/python3.6/sqlite3/__init__.py", line 23, in <module>

    from sqlite3.dbapi2 import *

  File "/usr/local/lib/python3.6/sqlite3/dbapi2.py", line 27, in <module>

    from _sqlite3 import *

ModuleNotFoundError: No module named '_sqlite3'


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "manage.py", line 22, in <module>

    execute_from_command_line(sys.argv)

  File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line

    utility.execute()

  File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 338, in execute

    django.setup()

  File "/usr/local/lib/python3.6/site-packages/django/__init__.py", line 27, in setup

    apps.populate(settings.INSTALLED_APPS)

  File "/usr/local/lib/python3.6/site-packages/django/apps/registry.py", line 108, in populate

    app_config.import_models()

  File "/usr/local/lib/python3.6/site-packages/django/apps/config.py", line 202, in import_models

    self.models_module = import_module(models_module_name)

  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module

    return _bootstrap._gcd_import(name[level:], package, level)

  File "<frozen importlib._bootstrap>", line 994, in _gcd_import

  File "<frozen importlib._bootstrap>", line 971, in _find_and_load

  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked

  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked

  File "<frozen importlib._bootstrap_external>", line 678, in exec_module

  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed

  File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/models.py", line 4, in <module>

    from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager

  File "/usr/local/lib/python3.6/site-packages/django/contrib/auth/base_user.py", line 52, in <module>

    class AbstractBaseUser(models.Model):

  File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 124, in __new__

    new_class.add_to_class('_meta', Options(meta, app_label))

  File "/usr/local/lib/python3.6/site-packages/django/db/models/base.py", line 325, in add_to_class

    value.contribute_to_class(cls, name)

  File "/usr/local/lib/python3.6/site-packages/django/db/models/options.py", line 214, in contribute_to_class

    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())

  File "/usr/local/lib/python3.6/site-packages/django/db/__init__.py", line 33, in __getattr__

    return getattr(connections[DEFAULT_DB_ALIAS], item)

  File "/usr/local/lib/python3.6/site-packages/django/db/utils.py", line 211, in __getitem__

    backend = load_backend(db['ENGINE'])

  File "/usr/local/lib/python3.6/site-packages/django/db/utils.py", line 115, in load_backend

    return import_module('%s.base' % backend_name)

  File "/usr/local/lib/python3.6/importlib/__init__.py", line 126, in import_module

    return _bootstrap._gcd_import(name[level:], package, level)

  File "/usr/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 35, in <module>

    raise ImproperlyConfigured("Error loading either pysqlite2 or sqlite3 modules (tried in that order): %s" % exc)

django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named '_sqlite3'

【解决办法】

1) 安装sqlite

  yum install sqlite-devel

2) 删除/usr/bin/python

3) 重新编译安装python3

  configure make make install

4) 重新设置python和pip的软连接

  ln -s /usr/local/bin/python3.6 /usr/bin/python

  ln -s /usr/local/bin/pip3 /usr/bin/pip