httpsqs的应用
- 2010年05月31日
最近项目中有这样一个需求,需要给用户发放优惠券,每人领取一次,流程如下:
1、判断优惠券表中是否有剩余的优惠券
2、判断是否领取过
3、判断是否在制定IP地址范围内(使用了最新的纯真IP库)
4、以上条件满足时,界面中有个按钮会晃动,提示用户有新的系统礼物
5、用户领取优惠券时,还是要走上面的流程,然后更新优惠券表里的状态,同时往用户优惠券表里插入用户领取到的优惠券记录
最近项目中有这样一个需求,需要给用户发放优惠券,每人领取一次,流程如下:
1、判断优惠券表中是否有剩余的优惠券
2、判断是否领取过
3、判断是否在制定IP地址范围内(使用了最新的纯真IP库)
4、以上条件满足时,界面中有个按钮会晃动,提示用户有新的系统礼物
5、用户领取优惠券时,还是要走上面的流程,然后更新优惠券表里的状态,同时往用户优惠券表里插入用户领取到的优惠券记录
~/.idlerc/config-highlight.cfg
win7:C:\Users\CBC\.idlerc\config-highlight.cfg
0.引入MySQLdb库
import MySQLdb
1.和数据库建立连接
conn=MySQLdb.connect(host="localhost",user="root",passwd="sa",db="mytable")
提供的connect方法用来和数据库建立连接,接收数个参数,返回连接对象.
比较常用的参数包括
host:数据库主机名.默认是用本地主机.
user:数据库登陆名.默认是当前用户.
passwd:数据库登陆的秘密.默认为空.
db:要使用的数据库名.没有默认值.
port:MySQL服务使用的TCP端口.默认是3306.
更多关于参数的信息可以查这里
http://mysql-python.sourceforge.net/MySQLdb.html
然后,这个连接对象也提供了对事务操作的支持,标准的方法
commit() 提交
rollback() 回滚
不知你是否意识到,围绕着什么才是实现异构的应用到应用通信的“正确”方式,一场争论正进行的如火如荼:虽然当前主流的方式明显地集中在基于SOAP、WSDL和WS-*规范的Web Services领域,但也有少数人用细小但洪亮的声音主张说更好的方式是REST,表述性状态转移(REpresentational State Transfer)的简称。在本文中,我不会涉及争论的话题,而是尝试对REST和RESTful HTTP应用集成做实用性的介绍。以我的经验,有些话题一旦触及就会引来众多的讨论,当涉及到这方面话题的时候,我会深入详细地阐述。
大部分对REST的介绍是以其正式的定义和背景作为开场的。但这儿且先按下不表,我先提出一个简单扼要的定义:REST定义了应该如何正确地使用(这和大多数人的实际使用方式有很大不同)Web标准,例如HTTP和URI。如果你在设计应用程序时能坚持REST原则,那就预示着你将会得到一个使用了优质Web架构(这将让你受益)的系统。总之,五条关键原则列举如下:
有时候根据需要可能创建一系列的表,如果每次去执行一次创建表的SQL,还是比较麻烦的,不如写一个存储过程来实现。
废话不多说,直接贴代码:
DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `CreateTable`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `CreateTable`(IN year_t INT, IN month_t INT, IN last_day_t INT)
BEGIN
DECLARE N INT DEFAULT 1;
WHILE N <= last_day_t DO
SET @DATE_TMP = DATE_FORMAT(CONCAT(year_t, ‘-’, month_t, ‘-’, N), "%Y%m%d");
SET @T_NAME = CONCAT(‘money_log_’, @DATE_TMP);
SET @C_TB_SQL = CONCAT(‘CREATE TABLE IF NOT EXISTS ‘, @T_NAME, ‘ (‘, ‘ `SEQ` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,’, ‘ `USERID` INT(11) UNSIGNED NOT NULL DEFAULT 0,’, ‘ `TYPE` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,’, ‘ `ITEMID` INT(11) UNSIGNED NOT NULL DEFAULT 0,’, ‘ `NUMBER` INT(11) UNSIGNED NOT NULL DEFAULT 0,’, ‘ `DATE` INT(8) UNSIGNED NOT NULL DEFAULT 0,’, ‘ `CREATE_DATE` DATETIME NOT NULL,’, ‘ PRIMARY KEY (`SEQ`)’, ‘) ENGINE=MYISAM DEFAULT CHARSET=utf8;’);
PREPARE C_TB_SQL_TMP FROM @C_TB_SQL;
EXECUTE C_TB_SQL_TMP;
SET N = N + 1;
END WHILE;
END$$DELIMITER ;
CONCAT函数的使用是关键
调用方式:Call CreateTable(Y, m, last_day_in_month)
JavaScript 的成功让人津津乐道,为 Web 网页编写 JavaScript 代码已经是所有 Web 设计师的基本功,这门有趣的语言蕴藏着许多不为人熟知的东西,即使多年的 JavaScript 程序员,也未能完全吃透。本文从7个方面讲述 JavaScript 中那些你不很熟知但非常实用的技巧。
简略语句
JavaScript 可以使用简略语句快速创建对象和数组,比如下面的代码:
在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。
Rsync的命令格式可以为以下六种:
rsync [OPTION]… SRC DEST
rsync [OPTION]… SRC [USER@]HOST:DEST
rsync [OPTION]… [USER@]HOST:SRC DEST
rsync [OPTION]… [USER@]HOST::SRC DEST
rsync [OPTION]… SRC [USER@]HOST::DEST
rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]