QQ группа: 909044439 (Aestate Framework)
Открытый пример проекта: gitee/aestate-example (старая версия)
Тестирование проведено с использованием следующих баз данных:
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 создаёт свои внутренние таблицы системы, что может вызывать проблемы при миграциях для новичков. Чтобы решить эту проблему, 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.renhttp://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 могли чувствовать себя комфортно. Например,
Более примеров проектов вы можете найти здесь:
CPython
DBPool
Simplejson
Gitee
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )