安装 django ,就不必多说,python 环境是 python 3.6,django 安装的命令为: pip3 install django==2.1.7
开始demo,名字为 guest
django-admin startproject guest
创建项目以及应用为:sign
cd ./guest
python3 manage.py startapp sign
这时候,要启动项目:
python3 manage.py runserver
报错如下:
Performing system checks... System check identified no issues (0 silenced). Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f94892ca8c8> Traceback (most recent call last): File "/usr/local/python3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 216, in ensure_connection self.connect() File "/usr/local/python3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 194, in connect self.connection = self.get_new_connection(conn_params) File "/usr/local/python3/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 159, in get_new_connection conn = Database.connect(**conn_params) sqlite3.NotSupportedError: URIs not supported The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/python3/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper fn(*args, **kwargs) File "/usr/local/python3/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 120, in inner_run self.check_migrations() File "/usr/local/python3/lib/python3.6/site-packages/django/core/management/base.py", line 442, in check_migrations executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS]) File "/usr/local/python3/lib/python3.6/site-packages/django/db/migrations/executor.py", line 18, in __init__ self.loader = MigrationLoader(self.connection) File "/usr/local/python3/lib/python3.6/site-packages/django/db/migrations/loader.py", line 49, in __init__ self.build_graph() File "/usr/local/python3/lib/python3.6/site-packages/django/db/migrations/loader.py", line 212, in build_graph self.applied_migrations = recorder.applied_migrations() File "/usr/local/python3/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 61, in applied_migrations if self.has_table(): File "/usr/local/python3/lib/python3.6/site-packages/django/db/migrations/recorder.py", line 44, in has_table return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()) File "/usr/local/python3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 255, in cursor return self._cursor() File "/usr/local/python3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 232, in _cursor self.ensure_connection() File "/usr/local/python3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 216, in ensure_connection self.connect() File "/usr/local/python3/lib/python3.6/site-packages/django/db/utils.py", line 89, in __exit__ raise dj_exc_value.with_traceback(traceback) from exc_value File "/usr/local/python3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 216, in ensure_connection self.connect() File "/usr/local/python3/lib/python3.6/site-packages/django/db/backends/base/base.py", line 194, in connect self.connection = self.get_new_connection(conn_params) File "/usr/local/python3/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 159, in get_new_connection conn = Database.connect(**conn_params) django.db.utils.NotSupportedError: URIs not supported
解决方案:
"/home/python3/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py"这个文件,修改修改大概198行,通过搜索uri查找。
kwargs.update({'uri': False}) #这里原来是True,修改为False就可以了
接下来,启动项目,但是我们访问 ip:port 却访问不了,怎么办?
将 settings.py 里面的 ALLOW_HOSTS
ALLOWED_HOSTS = ["*"]
且,启动项目的命令改成:
python3 manage.py runserver 0.0.0.0:8000
就可以按照公网的 ip:port 进行访问,我的是如下:http://www.ganziwen.cn:8000/