def remove(self,id): field = self.get(id) model = Model().get(field['model_id']) sql = 'ALTER TABLE `qc_%s` drop %s' sql = sql % (model['title'] , field['name']) mysql.execute(sql) self.find().where('id = ?',id).delete()
def edit(self,id,data): model = self.get(id) if model : self.find().where('id = ?' , id).save(data) if model['title'] != data['title'] : sql = 'alter table qc_%s rename qc_%s;' sql = sql % (model['title'] , data['title']) mysql.execute(sql)
def remove(self,id): model = self.get(id) if model : # 删除对应的栏目 categoryModel = Category() categorys = categoryModel.find().where('model_id = ?' , id).get(100) for v in categorys: categoryModel.remove(v['id']) # 删除对应的表 sql = 'DROP TABLE IF EXISTS qc_%s ;' % model['title'] mysql.execute(sql) # 删除模型 ModelData().find('model_id = ?' ,id).delete() self.find().where('id = ?' , id).delete()
def edit(self, id , data): field = self.get(id) if data['name'] in ModelData.attr : return { 'success' : False , 'msg' : data['name'] + '是保留字段' } #检查字段是否存在 count = self.find().where('name = ?' , data['name'])\ .where('id != ?' , id)\ .where('model_id = ?',field['model_id'])\ .count() if count != 0 : return { 'success' : False , 'msg' : '字段已经存在' } if field['name'] != data['name'] \ or field['type'] != data['type'] : model = Model().get(field['model_id']) sql = 'ALTER TABLE `qc_%s` CHANGE %s %s %s;' if int(data['max_len']) != 0 : length = '(%s)' % str(data['max_len']) else : length = '' sql = sql % (model['title'] , field['name'] , data['name'] , data['type'] + length) mysql.execute(sql) self.find().where('id = ?' , id).save(data) return { 'success' : True }
def add(self,data): model = Model().get(data['model_id']) if data['name'] in ModelData.attr : return { 'success' : False , 'msg' : data['name'] + '是保留字段' } #检查字段是否存在 count = self.find().where('name = ?' , data['name'])\ .where('model_id = ?',data['model_id'])\ .count() if count != 0 : return { 'success' : False , 'msg' : '字段已经存在' } id = self.find().add(data) field = self.get(id) sql = 'ALTER TABLE `qc_%s` Add %s %s%s;' if int(field['max_len']) != 0 : length = '(%s)' % str(field['max_len']) else : length = '' sql = sql % (model['title'] , field['name'] , field['type'] , length ) mysql.execute(sql) return { 'success' : True }
def createTable(self,id): data = self.get(id) if data : sql = '''CREATE TABLE IF NOT EXISTS `qc_%s` ( `id` INT NOT NULL AUTO_INCREMENT , `model_id` INT NULL , `locale_id` INT NULL , `category_has_article_id` INT NULL , `ip` VARCHAR(15) NULL , `user_id` INT NOT NULL , `time` INT NOT NULL , `change_time` INT NOT NULL , `listorder` INT NOT NULL DEFAULT 0 , %s PRIMARY KEY (`id`) , INDEX `IX_model_locale` (`model_id` DESC , `locale_id` DESC , `category_has_article_id` DESC) ) ENGINE = InnoDB;''' table = data['title'] sql = sql % ( table , self.buildFieldSql(id) ) return mysql.execute(sql)
import os # 设置系统编码为utf8 code = sys.getdefaultencoding() if code != 'utf8': reload(sys) sys.setdefaultencoding('utf8') import tornado.database from YooYo.db.mySql import Database path = os.path.dirname(__file__) Database.addConnect(tornado.database.Connection( host = host, database = database , user = user , password = password )) if create_database : #print 'CREATE DATABASE `%s`;' % database Database.execute('CREATE DATABASE `%s`;' % database) sqlFile = open(os.path.join(path,'qcms.sql') , 'r') sql = sqlFile.read() sqlFile.close() #print sql print Database.execute(sql) configTpl = '''
# 设置系统编码为utf8 code = sys.getdefaultencoding() if code != 'utf8': reload(sys) sys.setdefaultencoding('utf8') import config import tornado.ioloop import tornado.database import tornado.web from YooYo.db.mySql import Database # 添加类搜索路径 sys.path.append(os.path.join(config.app_path, 'app/module/')) # 连接数据库 database = config.settings['database'][config.settings['run_mode']] Database.addConnect( tornado.database.Connection( host=database['host'], database=database['database'], user=database['user'], password=database['password'])) # run app application = tornado.web.Application(config.routes, **config.settings) application.listen(config.settings['port']) tornado.ioloop.IOLoop.instance().start()