1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/aecode-aestate

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Aestate — Разнообразные запросы к базам данных

star языки лицензия

QQ группа: 909044439 (Aestate Framework)
Открытый пример проекта: gitee/aestate-example (старая версия)

Введение

Тестирование проведено с использованием следующих баз данных:

  • MySQL 8.0
  • SQL Server 2019
  • PostgreSQL 13.3

Aestate Framework - это ORM-фреймворк, написанный на языке Python. Вы можете использовать различные способы для выполнения запросов на основе объектов.

Это аналог MyBatis Plus для Java.

Например, использование метода, подобного Django:

modelClass.orm.filter(*args, **kwargs)

Или способ, используемый в SQLAlchemy:

find().where(**kwargs).group_by(*args)

Или как Hibernate для Java:

@SelectAbst()
def find_all_F_where_id_in_and_name_like_order_by_id(self, **kwargs) -> list: ...


@Select("SELECT * FROM demo WHERE id=#{id} AND name=#{name}")
def find_all_where_id(self, id, name): ...
```Или как XML используется в MyBatis для Java.
```xml
<?xml version="1.0"?>
<aestate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="aestate  https://gitee.com/aecode/aestate-xml/blob/main/v1/tags.xsd"
         xmlns="aestate">
    <template id="templateField">
        id,name,password,create_time,update_time
        <description>Тестовый шаблон</description>
    </template>
    <resultMap id="resultMapLeftJoin" type="testOpera.operas.table.demoModels.Demo">
        <result column="d1_id" property="id"/>
        <result column="d1_name" property="name"/>
        <result column="d1_password" property="password"/>
        <association ref="demoJoin" single="false">
        </association>
    </resultMap>
    <select id="findAllById" resultMap="resultMapLeftJoin">
        SELECT
        <!-- Импорт полей запроса -->
        <!--            <include from="templateField"/>-->
        <include from="tempSymbol"/>
        FROM demo AS d1 LEFT JOIN demo AS d2 ON d2.id = d1.id WHERE d1.id >
        <switch field="id">
            <case value="10">10</case>
            <case value="5">5</case>
            <default>${id}</default>
        </switch>
        <if test="${id} >= 20">AND d2.id > 20</if>
        <else>AND d2.id > 10</else>
        LIMIT 2
    </select>
    <!-- Вставка в самом верху, так как обычно объем кода небольшой -->
    <insert id="insertTest" useGeneratedKeys="False">
        INSERT INTO `demo`.`demo` (`name`, `password`) VALUES (${name}, ${password})
    </insert>
    <!-- Обновление в середине, так как изменения происходят наиболее часто -->
    <update id="updateTest" useGeneratedKeys="False">
        UPDATE `demo`.`demo` SET `name` = ${name}, `password` = ${password} WHERE `id` = ${id}
    </update>
    <!-- Удаление в самом низу, так как легко найти и код обычно простой -->
    <delete id="deleteTest">
        DELETE FROM `demo`.`demo` WHERE `id` = ${id}
        <description>
            Удаление записи с указанным ID
        </description>
    </delete>
</aestate>

Какие отличия от других библиотек?- Во-первых, Aestate представляет собой базу данных, которая объединяет Django, SQLAlchemy, MyBatis, MyBatis-Plus и SpringJPA. В результате такой интеграции он предлагает множество различных методов работы с данными. На данный момент доступно шесть методов операций: режим Django, режим SQLAlchemy, XML-режим, режим MyBatis-Plus, аннотационный режим и нативный режим.

  • Во-вторых, в плане совместимости, поскольку существует множество типов баз данных, Aestate предоставляет реализацию интерфейсов для менее распространённых баз данных, чтобы обеспечивать максимальную совместимость.

  • Что касается таблиц баз данных, Django создаёт свои внутренние таблицы системы, что может вызывать проблемы при миграциях для новичков. Чтобы решить эту проблему, Aestate максимально адаптировал возможности создания таблиц вручную и автоматически, не создавая лишних таблиц и данных, а также не привязываясь к конкретной системе. Это позволяет использовать скопированные модели/объекты POJO в последующих проектах.

  • Aestate имеет два модуля управления памятью для обеспечения целостности данных. Когда большие данные заполняют кэш, система старается выделить больше памяти для сохранения целостности данных. Только если это невозможно, начинается управление памятью (не рекомендуется работать с данными размером более 20% от общего объема памяти системы).- Aestate использует гибкую стратегию управления памятью, которая автоматически корректирует размер кэша в зависимости от выполнения системы, тем самым увеличивая скорость выполнения и снижая количество запросов к базе данных.

  • Также есть много других особенностей...

Решение проблемы с отображением символов в Windows командной строке: скачайте ansicon, затем выполните команды:

ansicon -i
ansicon -l

Информация о руководствах и документации

Документация была перемещена на платформу бесплатного хостинга: http://aestate.angid.eu.org, документация будет постепенно обновляться на gitee.> csdn: AECODE

OSCHINA: CACode
bilibili университет: Ты пишешь баги?
Официальный домен сайта: cacode.ren (переехал на Tencent Cloud, нет регистрации)
Домен официальной документации: doc.cacode.ren
http://aestate.angid.eu.org
Официальная страница на Gitee: https://aecode.gitee.io/aestate-doc
Архитектура проекта: aecode.gitee.io/aestate#

Предварительные условия

Python >= 3.6 Адрес официальной документации: http://doc.cacode.ren   http://aestate.angid.eu.org

Версионность

Основное требование — версия Python 2.7 и выше. Для выполнения SQL можно использовать версию 2.7 и выше (не рекомендуется).Наилучший вариант — использование Python 3.6 и выше, что позволяет использовать большинство функциональностей.

С версии 1.0.7 включена асинхронная методика, для её использования требуется Python ≥ 3.7.10.

Установка

pip install aestate

conda install aestate 

Я новичок, как быстро освоить?

Вы можете перейти на https://doc.cacode.ren и следовать официальному руководству
или же посмотреть видеоуроки на Bilibili ты пишешь баги.
Для решения сложных задач, пожалуйста, обратитесь к официальным решениям на CSDN: Aecode's csdn.net.

Слишком много вариантов использования, как с ними справиться?

Aestate предлагает пять способов работы, но вам обязательно не нужно знать все. Когда я создавал это, я хотел реализовать различные способы взаимодействия с различными языками через Python, чтобы разработчики переходящие на Python могли чувствовать себя комфортно. Например,

  1. Профессионал Java: использует XML, методы и аннотации
  2. Профессионал Python: использует Django и SQLAlchemy модели
  3. Новичок: просто пишет SQL, чтобы закрепить основы

Более примеров проектов вы можете найти здесь:

👉 Переходите на главную страницу canotf на Gitee 👈

Благодарности

CPython
DBPool
Simplejson
Gitee

Благодарности за пожертвования

Spacexzm Canotf Potuo Zxiaosi Xierkz

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Версия MybatisPlus для Python: разнообразные операции с базами данных ORM. Развернуть Свернуть
Python и 3 других языков
Apache-2.0
Отмена

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/aecode-aestate.git
git@api.gitlife.ru:oschina-mirror/aecode-aestate.git
oschina-mirror
aecode-aestate
aecode-aestate
main