AttributeError: 'str' 对象没有属性 'client'

迪纳卡

我有一个代码,我正在与 MongoDB 建立连接。这段代码是

连接MongoDB.py:

import pymongo
from pymongo import MongoClient
from flask import Flask, render_template, request,redirect,url_for

app = Flask(__name__)

# Connection to MongoDB

class ConnectMdb:
    @staticmethod
    def connect2mongodb():
        global client
        try:
            client = pymongo.MongoClient("mongodb") # modified to avoid showing actual string. Kindly ignore this part.
            print("Connected to Avengers MongoClient Successfully!!!")
            print (type(client))
            print(client)
        except:
            print("Connection to MongoClient Failed!!!")

        #db = client.avengers_hack_db
        return("Connection established")

if __name__ == '__main__':
   ConnectMdb.connect2mongodb()

我将此脚本导入另一个具有一些业务逻辑的程序中。以下是与此问题相关的部分代码:

进程数据.py:


import pymongo
from pymongo import MongoClient
import datetime
import sys
from flask import Flask, render_template, request
#import ProcessTaskData
#import werkzeug
import ConnectMongoDB as cDB
app = Flask(__name__)

CMdb = cDB.ConnectMdb.connect2mongodb()

db = CMdb.client.avengers_hack_db

@app.route('/')
def index():
  return render_template('index.html')

@app.route('/Avengers',methods = ['POST'])  
def Avengers():
    ip = request.remote_addr
    Project_ID = request.form['pid'] 
    Name = request.form['pname'] 
    Resource_Names = request.form['rsrc']

    db.ppm_master_db_collection.insert_many([
            {"Org_Id":"",
             "Name": Name,     
             "last_modified": datetime.datetime.utcnow()}
        ]) 
    return render_template('ptasks.html', user_ip=ip)   

@app.route('/ProjectTasks',methods = ['POST'])  
def ProjectTask():
    ip = request.remote_addr
    Task_ID = request.form['tid'] 
    TAlert = request.form['talrt']
    TResource_Names = request.form['trsrc']

    db.ppm_tasks_data_collection.insert_many([
            {"Task_ID": Task_ID,
             "Resource_Names": TResource_Names,
             "last_modified": datetime.datetime.utcnow()}
            ])  
    return render_template('ptasks.html', user_ip=ip)

if __name__ == '__main__':  
   app.run(debug = True)

如果我将 ConnectMongoDB.py 中的代码直接放在 ProcessData.py 中而不是导入,则效果很好。但从单独的文件它错误。

此外,客户端是以下类型:

 <class 'pymongo.mongo_client.MongoClient'>

理想情况下,当代码在 ProcessData.py 中时,它应该表现正常(也建立与 db 的连接)。不知道我在哪里失踪。

特拉普利

更改db = CMdb.client.avengers_hack_dbdb = cDB.client.avengers_hack_db应该使您的错误消失,您引用了错误的内容。你的静态方法的返回值是一个字符串,它没有客户端属性。


如果您的connect2mongodb方法是return client

class ConnectMdb:
    @staticmethod
    def connect2mongodb():
        try:
            client = pymongo.MongoClient("mongodb") # modified to avoid showing actual string. Kindly ignore this part.
            print("Connected to Avengers MongoClient Successfully!!!")
            print (type(client))
            print(client)
        except:
            raise Exception("Connection to MongoClient Failed!!!")

        return client

这种方式db = CMdb.client.avengers_hack_db会奏效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AttributeError:“ str”对象没有属性“ toLowerCase”

来自分类Dev

AttributeError:'str'对象没有属性'get'

来自分类Dev

AttributeError:“ str”对象没有属性“ items”

来自分类Dev

AttributeError:'str'对象没有属性'sleep'

来自分类Dev

AttributeError:“ str”对象没有属性“ maketrans”

来自分类Dev

AttributeError:'str'对象没有属性(功能)

来自分类Dev

attributeError:'str'对象没有属性'dbname'

来自分类Dev

AttributeError:“ str”对象没有属性“ values”

来自分类Dev

AttributeError:'str'对象没有属性'description'

来自分类Dev

AttributeError:'str'对象没有属性'union'

来自分类Dev

AttributeError:“ str”对象没有属性“ float”

来自分类Dev

AttributeError'str'对象没有属性'path'

来自分类Dev

AttributeError:'str'对象没有属性

来自分类Dev

AttributeError:“ str”对象没有属性“ name”

来自分类Dev

AttributeError: 'str' 对象没有属性 'keys'

来自分类Dev

AttributeError: 'str' 对象没有属性 'loc'

来自分类Dev

AttributeError: 'str' 对象没有属性 'channel'

来自分类Dev

AttributeError: 'str' 对象没有属性 'mode'

来自分类Dev

AttributeError: 'str' 对象没有属性 'map'

来自分类Dev

AttributeError: 'str' 对象没有属性 'execute'

来自分类Dev

Python 3.4:str:AttributeError:'str'对象没有属性'decode

来自分类Dev

Python 3.4:str:AttributeError:'str'对象没有属性'decode

来自分类Dev

Django makemigrations AttributeError:“ str”对象没有属性“ _meta”

来自分类Dev

Python-AttributeError:“ str”对象没有属性“ isDigit”

来自分类Dev

Django 1.8:/:“ str”对象上的AttributeError没有属性“ copy”

来自分类Dev

如何修复AttributeError:'str'对象没有属性'_radius'?

来自分类Dev

Python-AttributeError:“ str”对象没有属性“ append”

来自分类Dev

Django AttributeError:“ str”对象没有属性“ model”

来自分类Dev

Python EXscript-AttributeError:“ str”对象没有属性“ connect”

Related 相关文章

  1. 1

    AttributeError:“ str”对象没有属性“ toLowerCase”

  2. 2

    AttributeError:'str'对象没有属性'get'

  3. 3

    AttributeError:“ str”对象没有属性“ items”

  4. 4

    AttributeError:'str'对象没有属性'sleep'

  5. 5

    AttributeError:“ str”对象没有属性“ maketrans”

  6. 6

    AttributeError:'str'对象没有属性(功能)

  7. 7

    attributeError:'str'对象没有属性'dbname'

  8. 8

    AttributeError:“ str”对象没有属性“ values”

  9. 9

    AttributeError:'str'对象没有属性'description'

  10. 10

    AttributeError:'str'对象没有属性'union'

  11. 11

    AttributeError:“ str”对象没有属性“ float”

  12. 12

    AttributeError'str'对象没有属性'path'

  13. 13

    AttributeError:'str'对象没有属性

  14. 14

    AttributeError:“ str”对象没有属性“ name”

  15. 15

    AttributeError: 'str' 对象没有属性 'keys'

  16. 16

    AttributeError: 'str' 对象没有属性 'loc'

  17. 17

    AttributeError: 'str' 对象没有属性 'channel'

  18. 18

    AttributeError: 'str' 对象没有属性 'mode'

  19. 19

    AttributeError: 'str' 对象没有属性 'map'

  20. 20

    AttributeError: 'str' 对象没有属性 'execute'

  21. 21

    Python 3.4:str:AttributeError:'str'对象没有属性'decode

  22. 22

    Python 3.4:str:AttributeError:'str'对象没有属性'decode

  23. 23

    Django makemigrations AttributeError:“ str”对象没有属性“ _meta”

  24. 24

    Python-AttributeError:“ str”对象没有属性“ isDigit”

  25. 25

    Django 1.8:/:“ str”对象上的AttributeError没有属性“ copy”

  26. 26

    如何修复AttributeError:'str'对象没有属性'_radius'?

  27. 27

    Python-AttributeError:“ str”对象没有属性“ append”

  28. 28

    Django AttributeError:“ str”对象没有属性“ model”

  29. 29

    Python EXscript-AttributeError:“ str”对象没有属性“ connect”

热门标签

归档