logo头像
Snippet 博客主题

一.django教程-创建运行项目

1.安装django

1
[root@localhost] pip install Django

django源代码/bin目录下有个django-admin.py文件,这个文件在你安装django的时候编译成了二进制命令,其实也是python代码不过可以当二进制文件运行。

2.创建项目

命令如下

django-admin startproject 项目名称

创建一个名为HelloWorld的项目

1
[root@localhost ~]$  django-admin startproject HelloWorld

3.运行项目

跳到HelloWorld项目下

1
[root@localhost ~]$ cd HelloWorld

启动项目

1
[root@localhost ~]$  python manage.py runserver

4.运行项目遇到的异常

4.1 ModuleNotFoundError: No module named ‘_sqlite3’

解决办法:

安装sqlite

1
yum install sqlite*

重新编译安装python3.6

1
2
3
[root@localhost ~/Python-3.6.1]$ ./configure --prefix=/usr/local/python3
[root@localhost ~/Python-3.6.1]$ make
[root@localhost ~/Python-3.6.1]$ make install

然后在运行 python manage.py runserver 即可运行

4.2 django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).

我运行sqlite3 -version 版本已经是最新的了

1
2
3
╭─root@localhost.localdomain /home/lzq/tool/Python-3.6.1  
╰─➤ sqlite3 -version 127 ↵
3.25.3 2018-11-05 20:37:38 89e099fbe5e13c33e683bef07361231ca525b88f7907be7092058007b75036f2

但是还是报SQLite 3.8.3 or later is required (found 3.7.17).

找到所有的sqlite3,然后发现/usr/bin/sqlite3的版本是3.7.17,/usr/local/bin/sqlite3的版本是3.25.3

1
2
3
4
5
6
7
8
9
10
11
12
╭─root@localhost.localdomain /home/lzq/tool/Python-3.6.1  
╰─➤ find /usr/ -name sqlite3
/usr/bin/sqlite3
/usr/lib/vmware-installer/2.1.0/python/lib/sqlite3
/usr/lib64/python2.7/sqlite3
/usr/local/bin/sqlite3
/usr/local/python3/lib/python3.6/site-packages/django/db/backends/sqlite3
/usr/local/python3/lib/python3.6/sqlite3
/usr/local/soft/pycharm/helpers/typeshed/stdlib/2and3/sqlite3
╭─root@localhost.localdomain /home/lzq/tool/Python-3.6.1
╰─➤ /usr/bin/sqlite3 -version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668

替换了/usr/bin/sqlite3之后还是报这个错

然后我的解决办法:找到提示报错的代码文件注释掉下面的代码,就是比对数据库版本号的代码

1
2
3
4
5
def check_sqlite_version():
if Database.sqlite_version_info < (3, 8, 3):
raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)

check_sqlite_version()

然后启动成功

微信打赏