update: 优化代码以便更方便的开发

This commit is contained in:
MarkusJoe
2022-09-14 12:46:06 +08:00
parent b0750eefa5
commit 2822b61d8e
2 files changed
+49 -29

No files matched your search

+38 -3
View File
@@ -6,12 +6,47 @@
# @File Name: __init__.py.py # @File Name: __init__.py.py
import os
from src.config import Config from src.config import Config
if Config.database == 'sqlite': database = Config.database
def split_(origin: str, type_: int = 0) -> dict:
"""
:param origin:
:param type_: 0 -> Mysql
:return:
"""
origin = origin.split('|')[-1]
host = origin.split('@')[-1].split('/')[0].split(':')[0]
port = origin.split('@')[-1].split('/')[0].split(':')[1]
if type_ == 0: # Mysql
database_ = origin.split('@')[-1].split('/')[-1]
user = origin.split('@')[0].split(':')[0]
password = origin.split('@')[0].split(':')[1]
return {
'host': host,
'port': port,
'database': database_,
'user': user,
'password': password
}
if database == 'sqlite':
import sqlite3 as operator
from src.utils.t_download import download
if not os.path.exists('./src/db/data.sqlite'):
download('https://markusjoe.github.io/static_file_hosting/static/counter/data.sqlite')
from src.db.db import SQLite as Database from src.db.db import SQLite as Database
else: else:
import pymysql as operator
for k, v in zip(split_(origin=database, type_=0)):
os.environ[k] = v
from src.db.db import MySQL as Database from src.db.db import MySQL as Database
__all__ = [Database, operator]
__all__ = [Database]
+6 -21
View File
@@ -7,12 +7,10 @@
import os import os
import sqlite3 from src.db import operator
from src.config import Config
from src.utils.t_download import download
class Database: class DatabaseSQL:
def __init__(self): def __init__(self):
self.conn = None self.conn = None
self.cursor = None self.cursor = None
@@ -51,14 +49,14 @@ class Database:
return result return result
class SQLite(Database): class SQLite(DatabaseSQL):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self.conn = sqlite3.connect('./src/db/data.sqlite') self.conn = operator.connect('./src/db/data.sqlite')
self.cursor = self.conn.cursor() self.cursor = self.conn.cursor()
class MySQL(Database): class MySQL(DatabaseSQL):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
user = os.getenv('m_user') user = os.getenv('m_user')
@@ -66,23 +64,10 @@ class MySQL(Database):
host = os.getenv('m_host') host = os.getenv('m_host')
port = int(os.getenv('m_port')) port = int(os.getenv('m_port'))
db = os.getenv('m_database') db = os.getenv('m_database')
self.conn = pymysql.connect(host=host, self.conn = operator.connect(host=host,
user=user, user=user,
password=pwd, password=pwd,
port=port, port=port,
database=db database=db
) )
self.cursor = self.conn.cursor() self.cursor = self.conn.cursor()
if __name__ != '__main__':
if Config.database == 'sqlite':
print('Using SQLite Database')
if not os.path.exists('./src/db/data.sqlite'):
print('database file not exists, start downloading...')
download('https://pac.rtst.tech/static_file_hosting/static/counter/data.sqlite')
print('Done.')
else:
print('Using MySQL Database')
if not os.getenv('m_user'):
import pymysql