django设置模板全局变量

django 设置模板全局变量 1. Writing the context processor function 在app目录创建context_processors.py文件, 将新建的方法加入到 TEMPLATES 的 context_processors 里面 2. Write templatetags 创建templatetags 在templatetags目录里面创建join_event.py 指定模板路径 模板文件 在模板中引用tag

Pycharm如何调试Pecan代码

Pycharm如何调试Pecan代码 在Run/Debug Configurations里面添加一个python配置,并按照下面配置填写: script: C:\Python27\Scripts\pecan-script.py script parameters: serve config.py Working Directory: E:\code\ecloud [your project directory]

pecan model with sqlalchemy

pecan model with sqlalchemy 官方文档:Working with Databases, Transactions, and ORM’s 第一步就是要修改init_model方法 在model目录的init.py里面默认有一个init_model方法,可以用来初始化数据库连接等操作 The purpose of this method is to determine bindings from your configuration file and create necessary engines, pools, etc. according to your ORM or database toolkit of choice. 第二步就是修改app.py文件,加上hooks 需要注意的是对于GET、HEAD请求,pecan会调用start_read_only()方法。 on HTTP POST, PUT, and DELETE requests, TransactionHook takes care of the transaction […]

Django自定义命令

Django自定义命令 自定义命令 只要在apps模块下建立名字为management目录,再创建commands目录,然后创建以命令命名的文件,在文件内重写BaseCommand的handle方法即可。 目录结构 myapp/ |– management/ | |– commands/ | — data_import.py | |— init.py | `– init.py data_import.py 文件内容 到此便可以使用data_import命令了: 自定义命令参数 要添加自定义参数,可以在 add_arguments 方法中添加,其中第一个参数为命令行输入的参数名, dest参数为options中的key, default=False为该参数的默认值,如果参数不传入的话就默认为这个值。 命令行执行 Error AppRegistryNotReady(“Apps aren’t loaded yet.”) If you’re using Django in a plain Python script — rather than a management command — and you rely on the […]

cloud-init notes

cloud init 介绍 User configurability Cloud-init ‘s behavior can be configured via user-data. User-data can be given by the user at instance launch time.This is done via the –user-data or –user-data-file argument to ec2-run-instances for example. 使用 cloud init 使用的前提是镜像中已经安装了cloud-init 包,如果使用python代码(三个双引号)动态生成 user-data,需要注意的是行前一定不要留有空格,否则脚本不能执行 执行shell脚本 Begins with: #! or Content-Type: text/x-shellscript when using a MIME archive. 修改ubuntu的默认密码,并开启ssh密码登录 […]

使用Pyinstaller打包Python程序

Pyinstaller打包命令 -n NAME 指定生成文件的名称 –noconsole 文件运行的时候不会出现cmd黑窗口 –upx-dir PATH 指定upx目录路径,使用upx压缩 main.py 程序的入口文件,如果有多个文件也只要入口文件就行,其余的会自动引入 -i ICON 指定生成文件使用的图标 如果有ini配置文件、或者有图片等文件,可以等pyinstaller打包后直接拷贝到dist目录中即可使用 pyinstaller on arm platform pyinstaller 默认只支持x86架构,直接在arm平台打包,会提示没有预编译的bootloader Fatal error: PyInstaller does not include a pre-compiled bootloader for your platform. 这个问题只要在arm平台上重新生成一下bootloader即可解决,官方文档:http://pythonhosted.org/PyInstaller/bootloader-building.html 生成bootloader

Mingw编译Virt-Viewer

使用MinGW编译spice Windows客户端 Virt-Viewer Mingw简介 MinGW是Minimalist GUN for Windows的缩写。MinGW提供了一套开发环境,用来开发Microsoft windows本地应用。 MinGW提供了一套完全开源的编程工具集,不需要依赖于第三方的C运行DLL,就可以开发Windows本地应用。当然MinGW还是依赖于microsoft提供的几个操作系统DLL,比如MSVCRT.DLL。 MinGW 编译器提供了对Microsoft C Runtime的以及一些语言特定runtimes的访问。MinGW的Minimalist,就体现在这里,MinGW没有尝试提供一个POSIX runtime 环境。 安装Mingw编译环境 编译安装usbredir 编译安装spice-gtk Virt-Viewer汉化 virtviewer使用的是gettex的方案是标准的linux里国际化的方案,只要在代码里设置好正确的locale,绑定好正确的textdomain就可以了。 对应的汉化文件为po/zh_CN.po,需要修改翻译内容,修改这个文件即可。 修改源码中virt-viewer-util.c文件的方法virt_viewer_util_init 因为为windows系统,还需要修改国际化文件所在的目录(默认为Linux的/usr/share/locale) 这样即可完成对virt-viewer的汉化 编译安装Virt-viewer 遇到的问题 glib-genmashal: command not found 这是因为缺少glib2-devel,yum安装一下就可以了 Failed to create service named pipe 这是因为usbdk没有安装,到官网下载最新的usbdk安装即可,要注意的是windows7 64位系统,需要安装 Windows6.1-KB3033929-x64.msu 更新,否则会导致usb键盘鼠标都不能用!!! USBDK下载地址:http://www.spice-space.org/download/windows/UsbDk/ 提示mingw-spice-protocal 版本太低 只要下载新版本的mingw-spice-protocal更新一下就可以了 mingw-spice-protocol-0.12.11下载地址:http://koji.fedoraproject.org/koji/buildinfo?buildID=744124 Virt-Viewer菜单定制 修改share\virt-viewer\ui\virt-viewer.xml文件,删除child,即可删除对应的菜单项 修改标题栏 修改 src\remote_viewer_main.c 文件,将 Remote Viewer改为其他字符串即可。 […]

Openstack Windows7 CPU核数显示不一致

KVM Windows7设备管理器与任务管理器示CPU核数不一致 使用kvm创建Windows7 x64镜像,上传到openstack,创建云主机后发现系统内的CPU核数和分配的核数不一致。 启动命令: 任务管理器: 计算机基本信息: 设备管理器: 首先想到的是引导时处理器数量做了限制,但是打开引导高级选项的时候发现“处理器数”前面并没有勾上 然后我查看注册表,发现CPU也只有两个,并不是分配的4个 检查到这里我以为是我镜像做的有问题,我做镜像的那台机器是两核的,所以做出来的镜像最多也只能支持两个CPU, 但是细想一下其实是没有道理的。 后来查了资料之后发现是 windows7 自己的问题 Commercial servers, workstations, and other high-end PCs may have more than one physical processor. Windows 7 Professional, Enterprise, and Ultimate allow for two physical processors, providing the best performance on these computers. Windows 7 Starter, Home Basic, and Home Premium […]

MongoDB 集群

MongoDB 集群 MongoDB集群实现有三种方式:Master-Slave、Replica Set、Sharding 主从架构 (Master-slave) 主从架构一般用于备份或者做读写分离。由两种角色构成: 主(Master):可读可写,当数据有修改的时候,会将oplog同步到所有连接的salve上去。 从(Slave):只读不可写,自动从Master同步数据。 对于Mongodb来说,并不推荐使用Master-Slave架构,因为Master-Slave其中Master宕机后不能自动恢复,推荐使用Replica Set Replica sets replace master-slave replication for most use cases. If possible, use replica sets rather than master-slave replication for all new production deployments. 部署 在master机器上 在slave机器上 当slave连上后,master端会有提示 在slave连接master的时候,提示错误 这个错误表示 mongod 不能工作在当前系统的 locale 下,只需要修改当前系统的 locale 即可 验证 在master端执行命令,插入一条document 当用户在 master机器上执行插入操作的时候,可以看到slave端会立刻进行同步操作 在slave端查看是否已经同步 官方文档:https://docs.mongodb.org/manual/core/master-slave/ 副本集架构(Replica Set) 基于副本集实现的集群,最简单的模式就是 […]