工作需要自学django以便后续写接口,因而重新搭建了一次python环境,使用了不同的方法
- 使用pipenv来构建虚拟python包环境
安装
$ pip install pipenv
创建
pipenv --three 会使用当前系统的Python3创建环境
pipenv --python 3.6 指定某一Python版本创建环境
使用
$ pipenv shell
之后pip下载包和运行django都在该shell下进行
- 兼容问题
django2.0需要与cx_oracle7.0一起使用,django1.0与cx_oracle6.0一起使用,django2.0只兼容oracle12.1以上版本,oracle11g部分功能不兼容,用django1.0可以完全兼容
https://www.jianshu.com/p/e67b15110a94
安装cx_oracle 6.0时发生错误error: Microsoft Visual C++ 14.0 is required,下载该组件即可
https://download.microsoft.com/download/5/f/7/5f7acaeb-8363-451f-9425-68a90f98b238/visualcppbuildtools_full.exe?fixForIE=.exe.
django命令管理相关指令
- 查看版本
$ python -m django --version
- 创建项目(创建项目后直接使用pycharm打开,或者使用pycharm创建也可)
$ django-admin startproject mysite
- 运行项目(即开启一个进程,进程存在时才能通过IP登入)
$ python manage.py runserver
- 创建app(应用)
$ python manage.py startapp polls
目录如下
- 初始化模型,生成迁移文件
$ python manage.py makemigrations polls
生成文件如下
- 返回初始化时具体执行的sql指令(不会执行)
$ python manage.py sqlmigrate polls 0001
- 同步数据库(会执行迁移文件)
如果是django2+oracle11g会报错,原因可能是生成的sql指令包含了只有oracle12c才有的自增长列,解决方法在下面
$ python manage.py migrate
- 管理命令行(管理数据库)
$ python manage.py shell
- 创建用户
$ python manage.py createsuperuser
- 根据数据库生成model中表实例
$ python manage.py inspectdb
对结果直接进行拷贝即可
这里发生过错误
The error was: ORA-00904: "IDENTITY_COLUMN": invalid identifier
原因还是因为django2.0对oracle11g很多地方不兼容
解决方法:
- 降低django版本
- 利用其他环境包获取
项目使用的包是虚拟环境的包,在本地windows环境或其他环境安装django1,然后在该环境下进入项目目录运行python manage.py inspectdb即可正确生成model类