教程一:Python安装教程
Python教程一:Python环境安装(Anaconda3版本)_Cx_轩的博客-CSDN博客
--------------------------------------------------------------------------------------
前言
使用Aestate开源多样化数据库查询框架,进行操作数据库;方便作为一个JAVA工程师的我通过此框架去学习和使用Python。
此框架强大之处:(摘录于此开源框架内容介绍)
Aestate是基于Django、SQLAlchemy、Mybatis、Mybatis-Plus、SpringJPA整合起来的一个数据库支持库, 融合了这么多第三方库首先一点就是他的操作方式是多种多样的。目前已有六种操作方法, 也就是Django模式、SQLAlchemy模式、xml模式、Mybatis-Plus模式,注解模式,原生模式。
(本人熟练使用mp(Mybatis-Plus),所以此框架非常适合我)
一、安装Aestate
Aestate框架官网:Aestate
里面有详细教程我这边不在累述,此博客主要为记录。
注:安装过程中建议使用命令:
pip install aestate -i https://pypi.org/simple
在官网中有介绍不建议使用国内镜像。
二、开始使用
参考官网教程。
三、Demo代码
1.项目结构:
2.新建py文件:db_base.py
from aestate.work.Config import MySqlConfig
from aestate.work.Adapter import LanguageAdapter
#连接mysql数据库
class DbApater(LanguageAdapter):
def __init__(self):
self.funcs['love'] = self.love
def love(self, instance, key, value):
self._like_opera(instance, key, value)
class DatabaseConfig(MySqlConfig):
def __init__(self):
# 设置全局打印sql语句
self.set_field('print_sql', True)
# 设置全局插入语句返回最后一行id
self.set_field('last_id', True)
# 适配器 1.0.4版本更新之后在初始化部分使用,而非super()
self.adapter = DbApater()
super(DatabaseConfig, self).__init__(
# 数据库地址
host='localhost',
# 数据库端口
port=3306,
# 数据库名
database='test',
# 数据库用户
user='root',
# 数据库密码
password='xxxxx',
# 数据库创建者,如果你用的是mysql,那么这里就是pymysql,如果用的是sqlserver,那么这里就应该是pymssql
db_type='pymysql'
)
3.新建db_table_template.py
from aestate.dbs._mysql import tag
from base.utils.db_base import DatabaseConfig
from aestate.work.Manage import Pojo
class table_template(Pojo):
def __init__(self, **kwargs):
"""
模板类对象 配置根据官网配置后微调 modify by cx
如果统一规则了可以使用此模板对象 添加固定字段,否则不建议使用
特别是针对已经存在的表结构且生成表时没有一个固定的规则(很多规范都没有延续下去的项目)
"""
# # 创建一个自增的主键id,并且不允许为空
# self.id = tag.intField(primary_key=True, auto_field=True, is_null=False, comment='主键自增')
# # 创建一个创建时间,并设置`auto_time=True`,在第一次保存时可以为其设置默认为当前时间
# self.create_time = tag.datetimeField(auto_time=True, is_null=False, comment='创建时间')
# # 创建一个更新时间,并设置`update_auto_time=True`,保证每次修改都会更新为当前时间
# self.update_time = tag.datetimeField(update_auto_time=True, is_null=False, comment='更新时间')
# 设置config_obj未db_conf的对象,
super(table_template, self).__init__(
# 导入配置类
config_obj= DatabaseConfig(),
# 设置日志配置
log_conf={
# 保存位置
'path': "/log/",
# 是否允许保存日志
'save_flag': True,
# 当日志到达多少MB时删除日志重新记录
'max_clear': 100
},
# 必备的字段,每一个Pojo对象都必须包含一个`**kwargs`
**kwargs)
4.创建area.py文件(用于测试表查询area对象)
from base.utils.db_table_template import table_template
from aestate.dbs import _mysql
from sklearn import utils
from aestate.work.Annotation import Table, Select, SelectAbst, ReadXml, Item, AopModel
def Before():
print("before")
def After(result):
print('result', result)
# 使用表的全名为类名设置表的名称
@Table(name='area', msg='地区')
class Area(table_template):
def __init__(self, **kwargs):
# 新建一个名为name的字段,长度为20,不允许为空
self.id = _mysql.tag.intField(length=20, is_null=False, comment='id')
self.area = _mysql.tag.varcharField(length=20, is_null=False, comment='地区')
self.areacode = _mysql.tag.varcharField(length=20, is_null=False, comment='地区码')
# 使用内部变量设置表的名称
# self.__table_name__ = 'demo'
# 这里不设置`is_delete`字段
super(Area, self).__init__(**kwargs)
# @Select("SELECT * FROM area WHERE id=${id} AND area=#{area1}")
# def find_all_where_id(self, id, area1): ...
5.创建area_service.py文件(用于执行查询服务)
import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)
from base.entity.area import Area
import pandas
# 一定要先实例化
area = Area()
# # 查询所有数据
r1 = area.find_all()
print('r1',type(r1),r1.get(0))
for r in r1:
print(r.area)
df = pandas.DataFrame.from_dict(r2.to_dict())
print(df)
-------------------------------------------------------------------------------------------------------------------
教程三:使用Flask搭建web服务