记录Python学习中的几个小问题
记录Python学习中的几个小问题,和C#\JAVA的习惯都不太一样。
1、Django模板中比较两个值是否相等
错误的做法
<option value="{{group.id}}" {%if group.id==gr.id %}selected='selected'{% endif %}>{{group.name}}</option>
正确的做法
<option value="{{group.id}}" {%ifequal group.id gr.id %}selected='selected'{% endifequal %}>{{group.name}}</option>
2、两个dict合并
dictMerged=dict(dict1)
dictMerged.update(dict2)
或者
dict1.update(dict2)
3、合并request.GET到字典
一直以为request.GET和request.POST的类型是dict, 直接按照第二条合并就可以,但合并结果不对,检查后才知道request.GET和request.POST类型是QueryDict。
QueryDict有dict方法获取到dict表示,以下代码合并:
context.update(request.GET.dict());
4、ubuntu安装pip
$ sudo apt-get install python-pip python-dev build-essential
$ sudo pip install --upgrade pip
$ sudo pip install --upgrade virtualenv
安装mysql拓展包可以:sudo pipinstallmysql-python
安装其他的包只要pip + 包的名字 就行了 很方便。而且安装完的mysqlib用起来没一点问题,
安装mysql
apt-get install mysql-server
5、安装python wheel的whl文件
当然也可以自己下载.whl文件进行安装
wheel文件本质上就是zip或者rar,只不过他更加方便python的安装以及使用。在之前的图片中我们只要使用pip install wheel 就可以安装wheel。
之前直接使用pip install beautifulsoup来安装beautifulsoup,
在安装了wheel之后我们可以使使用pip install XXX.whl来安装.whl的文件了。
6、sqlalchemy报错:AttributeError: Neither 'ColumnClause' object nor 'Comparator' object has an attribute 'description'
定义模型是db.Column, 注意Column要大写
Column should be capitalized, as in:
streetnum = db.Column(db.String(100))
:)
7、sqlalchemy query 结果的JSON序列化
@manage_page.route('/metadata/<cid>/data2')
def metadata_data2(cid):
files = DataFile.query.join(DataItem, DataFile.id == DataItem.item_id).all()
#print jsonify( {c.name: getattr(row, c.name) for c in DataFile.__table__.columns} for row in files)
return jsonify( [{c: getattr(row,c) for c in DataFile.__table__.columns.keys()} for row in files])
参考文献,非常详细:
How to serialize SqlAlchemy result to JSON?
http://stackoverflow.com/questions/5022066/how-to-serialize-sqlalchemy-result-to-json
8
、python数组去重
直接用set就行,比如:
l = [1, 1, 2, 2, 3, 4, 5]
s = set(l)
c = [i for i in s]
print c
结果为:
[1, 2, 3, 4, 5]
9、jinja2模板中数组的join显示
第一次错误:
value="{{ ','.join([t.text for t in meta.ds_topic_tags ]) }}"
上面语句是不行的,别问我为什么,我也不知道。报错: TemplateSyntaxError: expected token ',', got 'for'
参考了:https://segmentfault.com/q/1010000003106582/a-1020000003703942
假设response的数据是:
'merchants': [{
'id': ,
'name': 'taobao'
}, {
'id': ,
'name': 'jingdong'
}, ...],
如何在模板渲染后变成以下形式:
taobao、jingdong
jinja2官方一个过滤器join,但只支持一维list。
查看文档发现还有一个 attribute 参数:
{{ item.merchants | join("、", attribute="name") }}
记录Python学习中的几个小问题的更多相关文章
- 【PyTorch教程】P3. Python学习中的两大法宝函数(当然也可以用在PyTorch)
温馨提示:为了更好的教程体验,提供视频.阅读地址 Youtube: https://www.youtube.com/playlist?list=PLgAyVnrNJ96CqYdjZ8v9YjQvCBc ...
- 记录python学习过程中的一些小心得
1.python中一切皆对象,内置数据结构也是对象.处理一个对象就是利用它带有的方法和属性,对该对象进行处理,一步步达到我们想要的结果. 2.编程时,先构思好我们处理的对象是什么,具有哪些属性和方法, ...
- Python学习中的一些小例子
这篇文章包括用Python编写的斐波那契数列,三位数的水仙花数和百钱买百鸡的基础代码 斐波那契数列: ''' def hanshu(n): n_1 = 1 n_2 = 1 m = n sumn = 0 ...
- 老男孩python学习之作业一购物小程序
想学编程由来已久 始终没有个结果,痛心不已 如今再次捡起来,望不负期望,不负岁月 ......一万字的废话...... 先介绍一下我的自学课程吧 "路飞学城"的<python ...
- python学习中遇到的错误及解决办法
1. nodename nor servname provided 原因:Python程序中有段程序调用 socket.gethostbyname(socket.gethostname()) sock ...
- Python学习中的“按位取反”笔记总结
| 疑惑 最近在学习Python的过程中了解到位运算符,但对于按位取反有点迷糊,就比如说~9(按位取反)之后的结果是-10,为什么不是6呢?所以下面就来看看为什么不是6,正确结果是如何计算出来的呢? ...
- python 学习中遇到的问题
一.安装pip中遇到的问题. 出现错误:ImportError:DLL load failed :%1不是有效的win32应用程序 出现问题解答: 主要是由于安装的python版本和所下载的安装包版本 ...
- python学习中,list/tuple/dict格式化遇到的问题
昨天上了python培训的第一课,学习了基础知识.包括类型和赋值,函数type(),dir(),id(),help()的使用,list/tuple/dict的定义以及内置函数的操作,函数的定义,控制语 ...
- 我在Python学习中遇到的问题一
开发工具:PyCharm 系统:macOs Serria 10.12.4 jetbrains出品,作为和idea一个公司的兄弟产品,延续了idea的易用性,并且操作按钮也基本一致 一. 执行环境问题 ...
随机推荐
- Python数据库备份脚本
Python数据库备份脚本 #!/usr/bin/env python # author: liudong # -*- coding: utf-8 -*- # filename: db_bak.py ...
- 使用FreePic2Pdf导出书签至Word建立层级目录——快速初始化Word笔记本目录
使用FreePic2Pdf导出书签至Word建立层级目录 --快速初始化Word笔记本目录 文:安徽师范大学2014级计算机科学与技术 王昊 (Get Contact:441301158@qq.com ...
- Android_Fragment(碎片)知识点讲解
今天我们来了解下Android 中的fragment(碎片)这个东西. Fragment 从英文翻译而言是碎片,片段的意思.那么这个东西是什么,在Android 中有什么用呢? 一.概念 Fragme ...
- Android菜鸟成长记16 -- JSON的解析
JSON的定义 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...
- ffmpeg总结整理
ffmpeg总结整理参考链接: http://www.cnblogs.com/youngt/p/5754415.html
- windows7内核驱动开发试验环境配置
首先配置环境参照这个: http://blog.csdn.net/qing666888/article/details/50858272 然后在win10里可能由于没有做测试签名因此一直没有成功加载驱 ...
- 修复 Firefox 下本地使用 Bootstrap 3 时 glyphicon 不显示问题
本地开发使用 Firefox 调试,遇到了 glyphicon 图标不显示的问题,期初以为是路径问题,搜索一大圈后找到了答案,原来这是一个安全性的问题,于是问题就好办了,解决方案如下: 1. 在Fir ...
- Ajax调用SpringMVC ModelAndView 无返回情况
在项目中使用Ajax的时候,success中返回的data一直都是null,也没有报错.在确定Ajax语法没有错误,也没有牵扯跨域问题后,用排除法挨着删除代码,发现是因为Spring MVC会自动把方 ...
- Linux cp命令使用说明
Linux cp命令使用说明 --功能说明:复制目录或文件 --命令格式:cp [参数] <文件或目录> <文件或目录> --常用参数: -R 复制目录 -i 覆盖文件之 ...
- Android开发学习---如何写数据到外部存储设备(sd卡),Environment.getExternalStorageDirectory,怎么获取sd卡的大小?
本文主要介绍如何写数据到sd卡,这里主要到的技术是Environment中的方法. 1. 2.实现代码: /datasave/src/com/amos/datasave/savePasswordSer ...