From 5b7e8bf37f09199b5b632fd316b981ac06a7379a Mon Sep 17 00:00:00 2001 From: hjdhnx Date: Sat, 27 Aug 2022 13:23:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86sqlite3=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 45 +++++++++++++++++++++++++++++++++---- classes/___init__.py | 7 ++++++ {models => classes}/cms.py | 0 config.py | 19 ++++++++++++++++ models/__init__.py | 2 +- models/no_use.py | 30 +++++++++++++++++++++++++ models/rule_classes.py | 21 +++++++++++++++++ models/rules.db | Bin 0 -> 12288 bytes readme.md | 6 +++-- requirements.txt | 3 ++- 10 files changed, 125 insertions(+), 8 deletions(-) create mode 100644 classes/___init__.py rename {models => classes}/cms.py (100%) create mode 100644 config.py create mode 100644 models/no_use.py create mode 100644 models/rule_classes.py create mode 100644 models/rules.db diff --git a/app.py b/app.py index 7e97fd3..10c2c35 100644 --- a/app.py +++ b/app.py @@ -3,23 +3,32 @@ # File : app.py # Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------ # Date : 2022/8/25 -import os +from flask_sqlalchemy import SQLAlchemy +import config + +import os from flask import Flask, jsonify, abort,request,redirect,make_response,render_template,send_from_directory from js.rules import getRules from utils import error,parser +from utils.web import * import sys import codecs -from models.cms import CMS +from classes.cms import CMS import json sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach()) app = Flask(__name__,static_folder='static',static_url_path='/static') -app.config["JSON_AS_ASCII"] = False # jsonify返回的中文正常显示 -from utils.web import * +# app.config["JSON_AS_ASCII"] = False # jsonify返回的中文正常显示 +app.config.from_object(config) # 单独的配置文件里写了,这里就不用弄json中文显示了 +db = SQLAlchemy(app) rule_list = getRules() print(rule_list) +from models import * + +RuleClass = rule_classes.init(db) + def getParmas(key=None,value=''): """ 获取链接参数 @@ -179,6 +188,34 @@ def plugin(name): except Exception as e: return jsonify(error.failed(f'非法猥亵\n{e}')) +def db_test(): + name = '555影视' + class_name = '电影&连续剧&福利&动漫&综艺' + class_url = '1&2&124&4&3' + # data = RuleClass.query.filter(RuleClass.name == '555影视').all() + res = db.session.query(RuleClass).filter(RuleClass.name == name).first() + print(res) + if res: + res.class_name = class_name + res.class_url = class_url + db.session.add(res) + msg = f'修改成功:{res.id}' + else: + res = RuleClass(name=name, class_name=class_name, class_url=class_url) + db.session.add(res) + res = db.session.query(RuleClass).filter(RuleClass.name == name).first() + msg = f'新增成功:{res.id}' + + try: + db.session.commit() + return jsonify(error.success(msg)) + except Exception as e: + return jsonify(error.failed(f'{e}')) + +@app.route('/db') +def database(): + return db_test() + if __name__ == '__main__': app.run(host="0.0.0.0", port=5705) diff --git a/classes/___init__.py b/classes/___init__.py new file mode 100644 index 0000000..b34a12d --- /dev/null +++ b/classes/___init__.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# File : ___init__.py +# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------ +# Date : 2022/8/27 + +from .cms import * \ No newline at end of file diff --git a/models/cms.py b/classes/cms.py similarity index 100% rename from models/cms.py rename to classes/cms.py diff --git a/config.py b/config.py new file mode 100644 index 0000000..dd6595d --- /dev/null +++ b/config.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# File : config.py +# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------ +# Date : 2022/8/27 + +DIALECT = 'mysql' +DRIVER = 'pymysql' +USERNAME = 'gp' +PASSWORD = '123456' +HOST = '127.0.0.1' +PORT = '3306' +DATABASE = 'pira' +# DB_URI = '{}+{}://{}:{}@{}:{}/{}?charset=utf8'.format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE) +DB_URI = 'sqlite:///models/rules.db?charset=utf8&check_same_thread=False' +SQLALCHEMY_DATABASE_URI = DB_URI +SQLALCHEMY_TRACK_MODIFICATIONS = False +SQLALCHEMY_ECHO = False # 打印sql语句 +JSON_AS_ASCII = False # jsonify返回的中文正常显示 \ No newline at end of file diff --git a/models/__init__.py b/models/__init__.py index 2daf85f..147bef4 100644 --- a/models/__init__.py +++ b/models/__init__.py @@ -4,4 +4,4 @@ # Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------ # Date : 2022/8/25 -from . import cms \ No newline at end of file +from . import rule_classes \ No newline at end of file diff --git a/models/no_use.py b/models/no_use.py new file mode 100644 index 0000000..c14b457 --- /dev/null +++ b/models/no_use.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# File : models.py +# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------ +# Date : 2022/8/27 + +from db_operation.db_init import * + +def get_dynamic_table_name_class(table_name): + # 定义一个内部类 + class myTable(Base): + # 给表名赋值 + __tablename__ = table_name + __table_args__ = {'extend_existing': True} + id = Column(Integer, primary_key=True, autoincrement=True) + name = Column(String(20)) + class_name = Column(String(32)) + class_url = Column(String(32)) + + def __repr__(self): + return "" % ( + self.name, self.class_name, self.class_url) + # 把动态设置表名的类返回去 + return myTable + +RuleClass = get_dynamic_table_name_class('rule_class') + +# Base.metadata.create_all(engine, checkfirst=True) +# Base.metadata.create_all(engine, tables=[Base.metadata.tables['rule_class']],checkfirst=True) +RuleClass.__table__.create(engine, checkfirst=True) \ No newline at end of file diff --git a/models/rule_classes.py b/models/rule_classes.py new file mode 100644 index 0000000..149fcf0 --- /dev/null +++ b/models/rule_classes.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# File : rule_classs.py +# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------ +# Date : 2022/8/27 + +# from sqlalchemy import Column, String, Integer, Float, DateTime, Date, ForeignKey, Text +# from flask_sqlalchemy import SQLAlchemy +# d = SQLAlchemy() + +def init(db): + class RuleClass(db.Model): + __tablename__ = 'rule_class' + id = db.Column(db.Integer, primary_key=True, autoincrement=True) + name = db.Column(db.String(20),unique=True) + class_name = db.Column(db.String(255)) + class_url = db.Column(db.String(255)) + + # db.create_all() + db.create_all() + return RuleClass \ No newline at end of file diff --git a/models/rules.db b/models/rules.db new file mode 100644 index 0000000000000000000000000000000000000000..70d328beb14de5b7fbcf79a8588aec8134299893 GIT binary patch literal 12288 zcmeI$Jx{_w7zgk>@CAsZZj2l;X&^C1z^-Z~4K^T31r1YEr6wd*A}@)n4n|ybaCQ`p zad2=Ej3#~-gx$r_D-o-clZi3^CwJ*{_w+99Z@XK~rb{)GZIvtAMvcYEIH8oxGe!vU z@b2b)5R@lFg8_fqYJ8PtvZ=2p(%1sVL5prtuSYvg?-*qk*S%Sl2kO7SzrBtt2&YF+Pil#2fT7jjM0t=Ul{kQWO zHJevh*xoAQi^N?cfngozK;yPHvy;?ejhH^G<~)!W#kt z5P$##AOHafKmY;|fB*y_0D(U$FiVF?aD76Oq|U=_uX)%#yW@%2dpz&9ZaR&o*u6OE z99@Z>