zoukankan      html  css  js  c++  java
  • python开发时总会碰到的问题

    1、开发时post和get的区别:

    (1)get是把参数数据队列加到提交表单的ACTION属性所指的URL中,

    值和表单内各个字段一一对应,在URL中可以看到。 

    (2)post是通过HTTP post机制,将表单内各个字段与其内容放置

    在HTML HEADER内一起传送到ACTION属性所指的URL地址。

    用户看不到这个过程。

    2、属性报错:

    有次代码出现了属性冲突,报错AttributeError: can't set attribute是这样子的,当时找了很多,百度了很多,最后才发现是变量和函数名冲突引起的。

    class MongoDB(object):
        host_a = '127.0.0.1'
        port = 0000
        database = 'xx'
        user = 'xx'
        password = 'xxx'
    
        def __init__(self, host=host_a, port=port, database=database, user=user, passoword=password, max_pool_size=10,
                     timeout=10):
            self.host = host
            self.port = port
            self.database = database
            self.password = passoword
            self.user = user
    
            self.max_pool_size = max_pool_size
            self.timeout = timeout
    
            self.conn = 'mongodb://huijian:huijian@'
            self.auth = '?authmechanism=SCRAM-SHA-1'
    
        @property
        def conn(self):
            conn = 'mongodb://' + self.user + ':' + self.password + '@' + self.host + ':' + str(
                self.port) + '/' + self.database + '?authmechanism=SCRAM-SHA-1'
            return MongoClient(conn)
    

      

    我的第19行代码和我的第23行代码定义的函数名字是相同的,所以编译器在找路径的时候,会造成两者冲突,一个是变量,一个是函数名,所以编译器不知道该从哪里进去,造成属性冲突;所以,我们可以把函数名字改成别的就行,这也告诉我们在定义函数名

    和函数变量的时候,千万不要用同样的名字。

     3、windows环境下用Studio 3T可视化连接mangodb的步骤:

    1)点击打开Studio 3T;

    2)File->connet->new connect->第一页设置正确的host和port;

    3)File->connet->new connect->authentication(身份验证)->Basic;

    4)然后填入你数据库的username/password/authentication DB;

    4、pip freeze >requirement.txt 这个生成python项目的依赖清单,切记在>前面要有一个空格键;可以pip install -r requirement.txt一次性配置完所有的虚拟环境;

    5、python marshmallow;

    marshmallow 是个 ORM 无关的库,能将复杂的数据类型转换为Python 原生类型对象,以便容易的转换为JSON 提供接口使用.

    6、当换了一个开发环境,例如mac上写的.py文件,回到家用windows环境开发再打开的时候,发现很多文件多了一些^M的讨厌的东西,其实是因为不同开发环境不同的格式输出;

    批量删除^M的方法:命令模式下,输入冒号,然后%s/ //g,然后回车搞定;

    7、报这个错误的时候UnicodeDecodeError: 'utf8' codec can't decode byte 0xd0 in position 3: invalid continuation byte:

    在主函数运行前加上这句话,问题解决

    import sys
    reload(sys)
    sys.setdefaultencoding("gbk")
    原因:系统环境变化,默认的事utf-8不识别,强制改为gbk格式就行

    注:当网页端出现编码问题,但是自己已经设置完毕了,那就说明你前后端的编码没有统一,尽量前端页面的编码和后台的编码保持统一;

    8、当在python开发中,经常可能需要采集字典的问题,这时候字符串的转换:

    
    

    (1)全部为int的元组,转化为全部为str的元组:map(str, str_temp)  将str_temp里面的字符转换为int;

    
    
  • 相关阅读:
    js 数据图表
    yii query builder
    mysql if
    这又是起点
    [cookie篇]从cookie-parser中间件说起
    How to find and fix Bash Shell-shock vulnerability CVE-2014-6271 in unix like system
    AngularJS打印问题
    笔记本上班时间自动静音下班自动打开
    SCP命令
    Installing Ruby 1.9.3 on Ubuntu 12.04 Precise Pengolin (without RVM)
  • 原文地址:https://www.cnblogs.com/haoxinchen/p/8810642.html
Copyright © 2011-2022 走看看