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

  • 相关阅读:
    sudo 之后 unable to resolve host的问题解决办法
    Linux 查找具体的文件名称
    linux 访问远程务器代码
    spark 安装配置
    R基本介绍
    BIEE多层表头报表的制作方法
    支付宝新漏洞引发恐慌,那如何关闭小额免密支付呢
    大家注意了,支付宝被曝重大安全漏洞,回应称正在跟进排查
    2017年5个不应该被忽视的机器学习项目
    婚前最后一次加班
  • 原文地址:https://www.cnblogs.com/fclbky/p/11319615.html
Copyright © 2011-2022 走看看