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

  • 相关阅读:
    业务线--node中间层做一个透传的项目
    JavaScript 字符串replace全局替换
    纯HTML和CSS实现点击切换
    css 清除一些默认的设置
    js异步请求方式
    VScode编辑器个性化配置
    webpack 解决跨域问题
    node.js连接MongoDB数据库,db.collection is not a function完美解决
    nodejs中&#x5B89;&#x5353;&#x7AEF;的编码如何转换为中文
    深入理解js的变量提升和函数提升
  • 原文地址:https://www.cnblogs.com/fclbky/p/11319615.html
Copyright © 2011-2022 走看看