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~ 不再报错

  • 相关阅读:
    Linux内核网络协议栈优化总纲
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 连续正整数的和
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 寂寞的数
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 学做菜
    Java实现 蓝桥杯VIP 算法训练 判断字符位置
    Java实现 蓝桥杯VIP 算法训练 判断字符位置
    Java实现 蓝桥杯VIP 算法训练 链表数据求和操作
  • 原文地址:https://www.cnblogs.com/fclbky/p/11319615.html
Copyright © 2011-2022 走看看