提交 5b7e8bf3 编写于 作者: H hjdhnx

增加了sqlite3数据库支持

上级 640d7f1b
......@@ -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)
......
#!/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
#!/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
......@@ -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
#!/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 "<Table(name='%s', class_name='%s', class_url='%s')>" % (
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
#!/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
文件已添加
......@@ -5,8 +5,9 @@
- [X] 2.首页增加更多功能按钮
- [X] 3.增加猫配置自动生成,分别有本地配置,局域网配置,在线配置
- [X] 4.修复默认网站的favicon图标问题
- [ ] 5.引入sqlite3数据进行缓存分类定位到的标签
- [ ] 6.增加filter一键爬取和入库(filter_name,filter_url,filter_parse)
- [X] 5.增加 flask-sqlalchemy 用于驱动sqlite3数据库
- [ ] 6.引入sqlite3数据进行缓存分类定位到的标签
- [ ] 7.增加filter一键爬取和入库(filter_name,filter_url,filter_parse)
###### 2022/08/26
- [X] 1.支持首页推荐功能,模板属性增加limit参数
- [X] 2.支持纯一级的功能(比如车车网没二级)
......@@ -33,6 +34,7 @@
7. 访问地址加/index查看dr_py主页
#### 测试地址
[sqlite3使用教程](https://m.yisu.com/zixun/375448.html)
[远程网站](http://cms.nokia.press/index)
[本地网站](http://192.168.10.99:5705/index)
[需要安装nodejs](https://registry.npmmirror.com/binary.html?path=node/latest-v14.x/)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册