zoukankan      html  css  js  c++  java
  • django 项目开发及部署遇到的坑

     

    1、django 连接oracle数据库遇到的坑

    需求:通过plsql建立的oracle数据表,想要django操作这几个表

    python manage.py inspectdb table_name > model.py

    生成都model.py 文件报错:

    ‘’django” # The error was: ORA-00904: "IDENTITY_COLUMN": invalid identifier

    解决:

    # database configuration settings.py
    #    'oracle': {
    #        'ENGINE': 'django.db.backends.oracle',
    #        'NAME': 'host:port/service',
    #        'USER': 'database_user',
    #        'PASSWORD': 'database_password',
    #    }
    
    pip uninstall django
    pip install Django==1.11.22
    
    cd <django application>
    
    python manage.py inspectdb table_name > model.py

    如果系统同时连接多个数据库,在创建数据库模型时需要添加database参数

    python manage.py inspectdb --database xx table_name > model.py
    其中 xx 是 setting文件中配置数据库的名字,DATABASE列表元素的第一层数值
    pip uninstall django pip install Django==2.2.4

    2、django服务直接放到centos中运行(不借助任何代理服务)

    通过python manage.py runserver 0.0.0.0:8008 启动,在远程是无法telnet 127.0.0.1 8000 通过的

    需要python manage.py runserver 0.0.0.0:8008,远程才可以telnet 127.0.0.1 8000

    虽然是很小的问题,可是如果不清楚的话也会困扰一阵,所以这里说明一下

    3、django连接mysql数据库遇到的坑

    通过pymysql 驱动连接mysql时会报错:

    django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3

    原因同样是django版本的问题

    解决:

    第一种:
    django降到2.1.4版本就OK了

    第二种(仍使用django 2.2版本):

    #找到Python环境下 django包,并进入到backends下的mysql文件夹
    cd /opt/anaconda3/envs/envAGC_Mini/lib/python3.6/site-packages/django/db/backends/mysql
    
    #文件列表如下

    技术分享图片

    # 找到base.py文件,注释掉 base.py 中如下部分(35/36行)
    if version < (1, 3, 3):
         raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)

    此时仍会会报错,报错信息如下:

    AttributeError: ‘str’ object has no attribute ‘decode’

    #找到operations.py文件(146行),将decode改为encode
    #linux vim 查找快捷键:?decode
    if query is not None:
        query = query.decode(errors=‘replace‘)
    return query
    #改为
    if query is not None:
        query = query.encode(errors=‘replace‘)
    return query

    OK~ 不再报错

  • 相关阅读:
    HashMap底层实现原理/HashMap与HashTable区别/HashMap与HashSet区别(转)
    JSP语法
    Web开发基础(读书笔记)
    eclispe新导入的文件有个小红叉号(x)的问题
    Vue处理数据,数组更新,但视图无法得到及时更新
    VUE 利用tab切换+同路由跳转传参(check)+vant上拉加载制作订单列表(终)
    适配方案一之:利用rem和less计算制作移动端适配页面
    Git常用命令务忘
    git提交代码步骤笔记
    Vue仿淘宝订单状态的tab切换效果——(但现实中不会用此种方式进行存储数据)
  • 原文地址:https://www.cnblogs.com/fclbky/p/11319615.html
Copyright © 2011-2022 走看看