摘要: 模拟acm测试系统1. 前言2. 代码模拟acm测试系统1. 前言最近和朋友在做一些acm的训练,虽然算法功力比较薄弱,但对acm的测试系统产生了一点兴趣,于是就尝试使用shell脚本做了一样小型的模拟程序。运行环境主要是linux和mac。我的环境是mac。目前只支持c语言。主要功能有:第一次运行时,会初始化设置你的项目根目录,并询问是否将脚本加入到PATH根据用户输入的题目命名,生成题目目录,包括源文件,测试数据文件,期望数据文件可以生成题目目录的时候,选择是否在控制台输入测试和期望数据根据测试数据文件运行源代码,并生成结果输出文件,和期望数据文件进行比对,输出比对结果提供运行时间的测试, 阅读全文
posted @ 2013-04-06 15:42 btchenguang 阅读(2816) 评论(1) 推荐(3) 编辑
摘要: SSH(Secure SHell)使用1. 什么是SSH?2. SSH是如何工作的?3. 为什么要采用第二种方法登录?4. 本机Win 7和Virtual box虚拟机ubuntu之间的实验4.1 进行ssh的密码口令连接4.2 进行ssh的密钥连接-在Win 7下制作密钥4.2.1 使用puttygen制作密钥4.2.2 修改ubuntu系统中openssh的配置4.2.3 拷贝公钥信息到ubuntu的特定文件中 4.2.4 使用putty进行密钥登录4.3 进行ssh的密钥连接-在Ubuntu下制作密钥4.3.1 在Linux下生成密钥4.3.2 把公钥写入authorized_keys文 阅读全文
posted @ 2012-09-28 22:05 btchenguang 阅读(25420) 评论(1) 推荐(6) 编辑
摘要: 通用视图1. 前言2. 使用通用视图安全问题的题外话3. 用于显示对象内容的通用视图4. 通用视图的几种扩展用法4.1 自定义结果集的模板名4.2 增加额外的context4.3 查看结果集的子集4.4 更灵活的结果集操作4.5 利用通用视图做额外工作通用视图1. 前言回想一下,在Django中view层起到的作用是相当于controller的角色,在view中实施的动作,一般是取得请求参数,再从model中得到数据,再通过数据创建模板,返回相应响应对象。但在一些比较通用的功能中,比如显示对象列表,显示某对象信息,如果反复写这么多流程的代码,也是一件浪费时间的事,在这里,Django同样给我们 阅读全文
posted @ 2012-09-23 10:46 btchenguang 阅读(8025) 评论(0) 推荐(2) 编辑
摘要: 3. Descriptor介绍3.1 Descriptor代码示例3.2 定义3.3 Descriptor Protocol(协议)3.4 Descriptor调用方法4. 基于Descriptor实现的功能4.1 property4.2 函数和方法,绑定与非绑定4.3 super5. 结尾3. Descriptor介绍3.1 Descriptor代码示例class RevealAccess(object):"""创建一个Descriptor类,用来打印出访问它的操作信息"""def __init__(self, initval=No 阅读全文
posted @ 2012-09-18 16:18 btchenguang 阅读(7128) 评论(3) 推荐(2) 编辑
摘要: python中基于descriptor的一些概念(上)1. 前言2. 新式类与经典类2.1 内置的object对象2.2 类的方法2.2.1 静态方法2.2.2 类方法2.3 新式类(new-style class)2.3.1 __init__方法2.3.2 __new__静态方法2.4. 新式类的实例2.4.1 Property2.4.2 __slots__属性2.4.3 __getattribute__方法2.4.4 实例的方法2.5 新的对象模型2.5.1 多继承2.5.2 MRO(Method Resolution Order, 方法解析顺序)2.5.3 协作式调用父类方法python 阅读全文
posted @ 2012-09-17 17:59 btchenguang 阅读(28438) 评论(2) 推荐(14) 编辑
摘要: Model进阶用法回顾访问外键访问多对多关系更改数据库结构当处理数据库结构改变时,需要注意到几点:增加字段首先在开发环境中:再到产品环境中:删除字段删除多对多字段删除modelManager管理器给管理器添加新的方法修改返回的QuerySetModel的方法执行自定义SQL语句Model进阶用法回顾Django中的model层主要和数据库进行交互,使用数据库API对数据库进行增删改查的操作。下面将介绍关于model层更深入的用法。下面是之前创建model的代码:from django.db import modelsclass Publisher(models.Model):name = mo 阅读全文
posted @ 2012-09-09 11:05 btchenguang 阅读(26842) 评论(2) 推荐(6) 编辑
摘要: Template加载机制扩展你的模板系统创建模板库实现自定义过滤器1. 创建register变量2. 定义过滤器函数3. 注册过滤器函数实现自定义tag了解模板编译过程 创建tag实战1. 定义Node节点类,实现render方法2. 创建Compilation函数3. 注册tag4. 运行复杂的实现自定义tag的其他几种方法1. 在Node类的render函数中设置context2. 实现块作用区域的tag3. 在块作用tag中保留context内容4. 快速创建简单tag的方法5. 创建Inclusion Tag创建自定义模板加载类Template加载机制一般来说,你在你的文件系统中存入模 阅读全文
posted @ 2012-09-05 18:45 btchenguang 阅读(27812) 评论(1) 推荐(9) 编辑
摘要: 前言需要扩展Python语言的理由:创建Python扩展的步骤1. 创建应用程序代码2. 利用样板来包装代码a. 包含python的头文件b. 为每个模块的每一个函数增加一个型如PyObject* Module_func()的包装函数c. 为每个模块增加一个型如PyMethodDef ModuleM... 阅读全文
posted @ 2012-09-04 19:06 btchenguang 阅读(49391) 评论(11) 推荐(7) 编辑
摘要: HTML代码自动转义(auto-escaping)当使用模板生成HTML代码时,如果变量内容是一些影响HTML结果的字符时,那就挺危险的。例如,模板内容如下:Hello {{ name }}当name的值为:<script>alert('hello')</script>渲染后的HTML结果就是:Hello <script>alert('hello')</script>以上的代码运行的结果就是会让浏览器弹出一个javascript的警告窗口。同理,如果name的值为<b>hanks,那么结果中Hello以 阅读全文
posted @ 2012-09-03 16:49 btchenguang 阅读(4271) 评论(2) 推荐(2) 编辑
摘要: 也许,你想要自定义和扩展模板引擎,下面会介绍一些关于如何去扩展模板系统的方法,了解一下模板系统的工作原理,同时也会介绍Django模板系统中的auto-escapint功能,这是一种安全机制。复习一下模板语言的用法{# 模板tag的用法 #}{% if done %}<strong>Over</strong>{% else %}<strong>wait</strong>{% endif %}{# 模板变量的用法 #}Now is {{ nowtime }}在views.py中使用模板的时候:1. 通过模板名,获得模板对象2. 创建context对 阅读全文
posted @ 2012-09-01 16:06 btchenguang 阅读(9920) 评论(0) 推荐(2) 编辑