记一次:django models到sqlalchemy models重构

django性能优化----配置使用sqlalchemy连接池 看了很多关于django配置连接池的文章,发现都做的很复杂… 其实实现起来是比较容易的. 1.配置setting里面的数据库参数将ENGINE字段修改成为自定引擎路径 2.创建自定义mysql.base.py包,继承pymysql的类修改获取新的链接为连接池即可 数据库连接池 setting.py ``` from utils import custom_django_conversions #配置数据库 DATABASES = { 'attendance': { 'NAME': 'name', 阅读详情

部署本地开发环境的django应用,初始化数据库设置

PythonWebDev\web_develop\network\networkconsole-master\networkconsole\conf.py

import os

DEBUG = True
ALLOWED_HOSTS = ['*']
DB_NAME = os.getenv("DB_NAME", "nms_console")
DB_USER = os.getenv("DB_USER", 'root')
DB_PASSWORD = os.getenv("DB_PASSWORD", '')
DB_HOST = os.getenv("DB_HOST", "localhost")
DB_PORT = int(os.getenv("DB_PORT", "3306"))
REDIS_HOST = os.getenv("REDIS_HOST", '127.0.0.1')
REDIS_PORT = int(os.getenv("REDIS_PORT", '6379'))
LDAP_SERVER_URI = os.getenv("LDAP_SERVER_URI", 'ldap://10.222.10.244:389')
LDAP_PASSWORD = os.getenv("LDAP_PASSWORD", 'OUm6Wau+VuBX')
LOCK_FILE_PATH = '/ikglobal/lock/'
MESSAGE_PATH = '/ikglobal/logs/message.log'
LOG_REQUEST_ERROR_PATH = '/ikglobal/logs/request_error.log'
LOG_SQL_PATH = '/ikglobal/logs/sql.log'

将jango的sql mode映射到数据库

python manage.py migrate

查看生成的对应数据库和表

映射sql到sqlalchemy models

(vpp_agent_venv3.7) [root@localhost model]# pip install sqlacodegen
(vpp_agent_venv3.7) [root@localhost model]# sqlacodegen --outfile=nms_routein.py mysql+pymysql://root:123456@127.0.0.1:3306/nms_console
(vpp_agent_venv3.7) [root@localhost model]# ls
base_model.py  models2.py  models_mongo.py  models.py  nms_routein.py  __pycache__  route_in.py

通过navicat导出数据库结构

点击nms_console,右键选择转存sql文件数据和结构

/*
 Navicat Premium Data Transfer

 Source Server         : 127.0.0.1
 Source Server Type    : MySQL
 Source Server Version : 50721
 Source Host           : 127.0.0.1:3306
 Source Schema         : nms_console

 Target Server Type    : MySQL
 Target Server Version : 50721
 File Encoding         : 65001

 Date: 11/09/2019 20:25:28
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for common_config
-- ----------------------------
DROP TABLE IF EXISTS `common_config`;
CREATE TABLE `common_config`  (
  `uuid` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `data` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `room_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`uuid`) USING BTREE,
  UNIQUE INDEX `common_config_name_room_id_50e7a3f4_uniq`(`name`, `room_id`) USING BTREE,
  INDEX `common_config_room_id_1687cb8f_fk_common_room_uuid`(`room_id`) USING BTREE,
  CONSTRAINT `common_config_room_id_1687cb8f_fk_common_room_uuid` FOREIGN KEY (`room_id`) REFERENCES `common_room` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for common_local_config
-- ----------------------------
DROP TABLE IF EXISTS `common_local_config`;
CREATE TABLE `common_local_config`  (
  `uuid` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `data` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `room_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`uuid`) USING BTREE,
  UNIQUE INDEX `common_local_config_name_room_id_2352bdaa_uniq`(`name`, `room_id`) USING BTREE,
  INDEX `common_local_config_room_id_177281a0_fk_common_room_uuid`(`room_id`) USING BTREE,
  CONSTRAINT `common_local_config_room_id_177281a0_fk_common_room_uuid` FOREIGN KEY (`room_id`) REFERENCES `common_room` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for common_room
-- ----------------------------
DROP TABLE IF EXISTS `common_room`;
CREATE TABLE `common_room`  (
  `uuid` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `enable_qy` tinyint(1) NOT NULL,
  `enable_route` tinyint(1) NOT NULL,
  `server_url` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `secret_key` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `weight` int(11) NOT NULL,
  PRIMARY KEY (`uuid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of common_room
-- ----------------------------
INSERT INTO `common_room` VALUES ('d1105c29-2871-4fe9-a275-afe4ada734a2', 'test', 1, 1, 'http://10.1.252.22:8001', 'system', 'c8245a353402df39bd271d66fb5ce0b5fba87e63', 0);

-- ----------------------------
-- Table structure for in_community_group
-- ----------------------------
DROP TABLE IF EXISTS `in_community_group`;
CREATE TABLE `in_community_group`  (
  `uuid` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `room_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`uuid`) USING BTREE,
  UNIQUE INDEX `name`(`name`) USING BTREE,
  INDEX `in_community_group_room_id_8ebde5de_fk_common_room_uuid`(`room_id`) USING BTREE,
  CONSTRAINT `in_community_group_room_id_8ebde5de_fk_common_room_uuid` FOREIGN KEY (`room_id`) REFERENCES `common_room` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for in_community_line
-- ----------------------------
DROP TABLE IF EXISTS `in_community_line`;
CREATE TABLE `in_community_line`  (
  `uuid` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `lft` int(10) UNSIGNED NOT NULL,
  `rght` int(10) UNSIGNED NOT NULL,
  `tree_id` int(10) UNSIGNED NOT NULL,
  `level` int(10) UNSIGNED NOT NULL,
  `parent_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `room_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`uuid`) USING BTREE,
  INDEX `in_community_line_room_id_0aa1b1cd_fk_common_room_uuid`(`room_id`) USING BTREE,
  INDEX `in_community_line_lft_7fd98161`(`lft`) USING BTREE,
  INDEX `in_community_line_rght_d2de5471`(`rght`) USING BTREE,
  INDEX `in_community_line_tree_id_247cf493`(`tree_id`) USING BTREE,
  INDEX `in_community_line_level_772a9cbc`(`level`) USING BTREE,
  INDEX `in_community_line_parent_id_f2bfc602`(`parent_id`) USING BTREE,
  CONSTRAINT `in_community_line_parent_id_f2bfc602_fk_in_community_line_uuid` FOREIGN KEY (`parent_id`) REFERENCES `in_community_line` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `in_community_line_room_id_0aa1b1cd_fk_common_room_uuid` FOREIGN KEY (`room_id`) REFERENCES `common_room` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for in_community_manager
-- ----------------------------
DROP TABLE IF EXISTS `in_community_manager`;
CREATE TABLE `in_community_manager`  (
  `uuid` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `community` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `main_switch` tinyint(1) NOT NULL,
  `weight` int(11) NOT NULL,
  `line_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `room_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `copy_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`uuid`) USING BTREE,
  UNIQUE INDEX `in_community_manager_community_room_id_82499a71_uniq`(`community`, `room_id`) USING BTREE,
  INDEX `in_community_Manager_line_id_af4ee501_fk_in_community_line_uuid`(`line_id`) USING BTREE,
  INDEX `in_community_Manager_room_id_f7d2a7e7_fk_common_room_uuid`(`room_id`) USING BTREE,
  CONSTRAINT `in_community_Manager_line_id_af4ee501_fk_in_community_line_uuid` FOREIGN KEY (`line_id`) REFERENCES `in_community_line` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `in_community_Manager_room_id_f7d2a7e7_fk_common_room_uuid` FOREIGN KEY (`room_id`) REFERENCES `common_room` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for in_community_template
-- ----------------------------
DROP TABLE IF EXISTS `in_community_template`;
CREATE TABLE `in_community_template`  (
  `uuid` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `room_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`uuid`) USING BTREE,
  INDEX `in_community_template_room_id_79d54d56_fk_common_room_uuid`(`room_id`) USING BTREE,
  CONSTRAINT `in_community_template_room_id_79d54d56_fk_common_room_uuid` FOREIGN KEY (`room_id`) REFERENCES `common_room` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for in_group_many_community
-- ----------------------------
DROP TABLE IF EXISTS `in_group_many_community`;
CREATE TABLE `in_group_many_community`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `communitygroup_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `communitymanager_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `in_group_many_community_communitygroup_id_commun_f8ea338b_uniq`(`communitygroup_id`, `communitymanager_id`) USING BTREE,
  INDEX `in_group_many_commun_communitymanager_id_3f227d8d_fk_in_commun`(`communitymanager_id`) USING BTREE,
  CONSTRAINT `in_group_many_commun_communitygroup_id_4cd68e69_fk_in_commun` FOREIGN KEY (`communitygroup_id`) REFERENCES `in_community_group` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `in_group_many_commun_communitymanager_id_3f227d8d_fk_in_commun` FOREIGN KEY (`communitymanager_id`) REFERENCES `in_community_manager` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for in_ip_attribute
-- ----------------------------
DROP TABLE IF EXISTS `in_ip_attribute`;
CREATE TABLE `in_ip_attribute`  (
  `uuid` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `room_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`uuid`) USING BTREE,
  INDEX `in_ip_attribute_room_id_d37fd4d6_fk_common_room_uuid`(`room_id`) USING BTREE,
  CONSTRAINT `in_ip_attribute_room_id_d37fd4d6_fk_common_room_uuid` FOREIGN KEY (`room_id`) REFERENCES `common_room` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for in_ip_manager
-- ----------------------------
DROP TABLE IF EXISTS `in_ip_manager`;
CREATE TABLE `in_ip_manager`  (
  `uuid` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `ip` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `node` int(11) NULL DEFAULT NULL,
  `modify_reason` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `status` int(11) NOT NULL,
  `status_changed` double NOT NULL,
  `qy_status_line` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `community_change` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NULL,
  `attribute_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `group_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `policy_name_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `room_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `router_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `template_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`uuid`) USING BTREE,
  UNIQUE INDEX `in_ip_manager_ip_room_id_4082deca_uniq`(`ip`, `room_id`) USING BTREE,
  INDEX `in_ip_manager_attribute_id_739a2131_fk_in_ip_attribute_uuid`(`attribute_id`) USING BTREE,
  INDEX `in_ip_manager_group_id_8609ecf1_fk_in_community_group_uuid`(`group_id`) USING BTREE,
  INDEX `in_ip_manager_policy_name_id_a4a5feda_fk_in_router`(`policy_name_id`) USING BTREE,
  INDEX `in_ip_manager_room_id_01a6f6a1_fk_common_room_uuid`(`room_id`) USING BTREE,
  INDEX `in_ip_manager_router_id_d2106453_fk_in_router_manager_uuid`(`router_id`) USING BTREE,
  INDEX `in_ip_manager_template_id_6680b7db_fk_in_community_template_uuid`(`template_id`) USING BTREE,
  CONSTRAINT `in_ip_manager_attribute_id_739a2131_fk_in_ip_attribute_uuid` FOREIGN KEY (`attribute_id`) REFERENCES `in_ip_attribute` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `in_ip_manager_group_id_8609ecf1_fk_in_community_group_uuid` FOREIGN KEY (`group_id`) REFERENCES `in_community_group` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `in_ip_manager_policy_name_id_a4a5feda_fk_in_router` FOREIGN KEY (`policy_name_id`) REFERENCES `in_router_policyname` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `in_ip_manager_room_id_01a6f6a1_fk_common_room_uuid` FOREIGN KEY (`room_id`) REFERENCES `common_room` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `in_ip_manager_router_id_d2106453_fk_in_router_manager_uuid` FOREIGN KEY (`router_id`) REFERENCES `in_router_manager` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `in_ip_manager_template_id_6680b7db_fk_in_community_template_uuid` FOREIGN KEY (`template_id`) REFERENCES `in_community_template` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for in_ip_many_community
-- ----------------------------
DROP TABLE IF EXISTS `in_ip_many_community`;
CREATE TABLE `in_ip_many_community`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `ipmanager_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `communitymanager_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `in_ip_many_community_ipmanager_id_communityma_4779c35e_uniq`(`ipmanager_id`, `communitymanager_id`) USING BTREE,
  INDEX `in_ip_many_community_communitymanager_id_9a85914f_fk_in_commun`(`communitymanager_id`) USING BTREE,
  CONSTRAINT `in_ip_many_community_communitymanager_id_9a85914f_fk_in_commun` FOREIGN KEY (`communitymanager_id`) REFERENCES `in_community_manager` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `in_ip_many_community_ipmanager_id_ab0a111d_fk_in_ip_manager_uuid` FOREIGN KEY (`ipmanager_id`) REFERENCES `in_ip_manager` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for in_router_manager
-- ----------------------------
DROP TABLE IF EXISTS `in_router_manager`;
CREATE TABLE `in_router_manager`  (
  `uuid` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `ip` char(39) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `alias` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `port` int(11) NOT NULL,
  `username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `password` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `manufacturer` int(11) NOT NULL,
  `room_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`uuid`) USING BTREE,
  UNIQUE INDEX `ip`(`ip`) USING BTREE,
  INDEX `in_router_manager_room_id_b8402dd7_fk_common_room_uuid`(`room_id`) USING BTREE,
  CONSTRAINT `in_router_manager_room_id_b8402dd7_fk_common_room_uuid` FOREIGN KEY (`room_id`) REFERENCES `common_room` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of in_router_manager
-- ----------------------------
INSERT INTO `in_router_manager` VALUES ('dssdgsdg', '1.1.1.1', 'NE40', 22, 'test', 'test', 1, 'd1105c29-2871-4fe9-a275-afe4ada734a2');

-- ----------------------------
-- Table structure for in_router_policyname
-- ----------------------------
DROP TABLE IF EXISTS `in_router_policyname`;
CREATE TABLE `in_router_policyname`  (
  `uuid` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `room_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `router_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`uuid`) USING BTREE,
  INDEX `in_router_policyname_room_id_57ad0c32_fk_common_room_uuid`(`room_id`) USING BTREE,
  INDEX `in_router_policyname_router_id_28262f1d_fk_in_router`(`router_id`) USING BTREE,
  CONSTRAINT `in_router_policyname_room_id_57ad0c32_fk_common_room_uuid` FOREIGN KEY (`room_id`) REFERENCES `common_room` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `in_router_policyname_router_id_28262f1d_fk_in_router` FOREIGN KEY (`router_id`) REFERENCES `in_router_manager` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Table structure for in_template_many_community
-- ----------------------------
DROP TABLE IF EXISTS `in_template_many_community`;
CREATE TABLE `in_template_many_community`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `communitytemplate_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `communitymanager_id` char(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `in_template_many_communi_communitytemplate_id_com_b8b6f4d3_uniq`(`communitytemplate_id`, `communitymanager_id`) USING BTREE,
  INDEX `in_template_many_com_communitymanager_id_a1a9ec6a_fk_in_commun`(`communitymanager_id`) USING BTREE,
  CONSTRAINT `in_template_many_com_communitymanager_id_a1a9ec6a_fk_in_commun` FOREIGN KEY (`communitymanager_id`) REFERENCES `in_community_manager` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
  CONSTRAINT `in_template_many_com_communitytemplate_id_f2a3e702_fk_in_commun` FOREIGN KEY (`communitytemplate_id`) REFERENCES `in_community_template` (`uuid`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

逆向数据库到模型

Python后端入门指南:从Django到FastAPI的工程化实战路径 Web后端开发本质是请求处理、数据持久化与服务交付的系统工程。理解HTTP生命周期、数据库事务边界和异步I/O原理,是构建可靠服务的基础。Django提供开箱即用的MVC骨架与Admin后台,适合快速建立工程直觉;Flask以轻量设计揭示路由分发与中间件机制;FastAPI则通过类型驱动和async/await应对高并发I/O瓶颈。技术价值在于将业务规则转化为可测试、可部署、可监控的代码资产。典型应用场景包括企业级员工管理系统、API优先的前后端分离架构及需异步导出的B2B SaaS服务。本指南聚焦真实项目 阅读详情

相关推荐

SQLAlchemy Core 入门实战:SQLite 零配置+生产级连接管理

SQLAlchemy Core 是 Python 操作关系型数据库的核心抽象层,它将 SQL 语句安全封装为可组合的 Python 表达式,既保留原生 SQL 的可控性,又提供参数绑定、类型映射和连接池管理等工程能力。相比 ORM,Core 更适合高并发、低延迟场景,避免 N+1 查询与隐式加载陷阱;结合 SQLite 可实现零配置本地验证,快速覆盖建表、增删改查、JOIN、聚合及 Pandas 互操作等全链路数据操作。本文聚焦 SQLAlchemy 2.0+ 最小可行实践,详解 Engine 连接工厂生命

weixin_34345753的博客 520

将Django ORM与SQLAlchemy合并以简化数据分析

注意:由于降价,代码示例可能显示不正确。 我们建议继续阅读我们博客上的原始文章,以确保正确显示所有示例。 使用Django框架开发产品通常很容易直接。 优质的文档,开箱即用的许多工具,大量的开源库和庞大的社区。 Django ORM完全控制SQL层,以保护您免受错误以及查询的底层细节的影响,因此您可以花更多时间在Python代码中设计和构建应用程序结构。 但是,有时这种行为可能会造成伤害-例如...

编程故事的地方 1142

Flask-SQLAlchemy多对多关系:关联表与关联模型实战指南

多对多关系是关系型数据库建模的核心概念之一,其本质是通过中间实体实现两个实体间的双向连接。在ORM层面,它并非简单的外键引用,而是依赖显式的关系表或关联模型来承载连接语义与业务上下文。Flask-SQLAlchemy强调‘显式优于隐式’,要求开发者明确定义中间结构,从而支撑收藏时间、评分、状态等扩展字段及事件钩子。相比纯关联表(db.Table),关联模型(association object)具备主键、字段、方法和生命周期管理能力,是生产环境处理用户-标签、商品-分类、课程-学生等典型场景的可靠选择。本文

weixin_30319153的博客 416

ORM:django的ORM和SQLalchemy

一般的ORM包括以下四部分: 一个对持久类对象进行CRUD操作的API; 一个语言或API用来规定与类和类属性相关的查询; 一个规定MAPPING METADATA的工具; 一种技术可以让ORM的实现同事务对象一起进行DIRTYCHECKING, LAZY ASSOCIATION FETCHING以及其他的优化操作。

GeekLee的博客 1216

Django架构深度解析:从MTV模式到高并发优化

Web开发框架是构建现代网络应用的核心工具,其中Django以其'全栈式'设计哲学脱颖而出。MTV(Model-Template-View)架构模式通过清晰的职责分离,实现了数据模型、表现层和业务逻辑的解耦。其内置ORM系统采用数据映射器模式,通过QuerySet的惰性求值机制优化数据库访问,配合中间件管道实现可扩展的请求处理流程。在高并发场景下,通过多级缓存策略(全页缓存/模板片段缓存/低级API缓存)和Celery异步任务队列,能有效提升系统吞吐量。这些特性使Django特别适合内容管理系统、电商平台等

weixin_30258901的博客 338

Cursor深度解析:AI原生编辑器如何重构开发者工作流

现代IDE已从代码编辑工具演进为智能协作者,其核心在于能否真正理解项目语义与工程上下文。传统AI插件受限于VS Code沙盒机制,仅能访问局部文本;而AI原生编辑器通过文件图谱索引、动态上下文感知和模型任务路由等底层设计,实现跨文件逻辑同步、模糊需求转精确实现、崩溃根因自动诊断等高阶能力。这种架构差异使AI不再停留于‘补全’或‘问答’,而是深度参与重构、调试、审查与技术债治理等全生命周期环节。尤其在微服务协同、遗留系统改造、安全合规加固等典型工程场景中,AI原生工作流显著降低认知负荷与重复劳动。本文以Cur

weixin_34043301的博客 463

FastAPI 学习日记 01:从 Django 转型,吃透类型驱动工程架构

我们先编写一份标准 SQLAlchemy2.0 异步 ORM 模型:python运行name: Mapped[str] = mapped_column(String(50), nullable=False, comment="分类名称")sort_order: Mapped[int] = mapped_column(Integer, default=0, nullable=False, comment="排序序号")

2403_88403151的博客 355

氛围编码:重构人机协作契约的工程实践指南

氛围编码(Vibe Coding)并非AI自动写代码,而是开发者将模糊业务意图转化为可执行技术契约的新范式。其核心在于语义层的人机协同——通过硬约束锚定、软目标排序与自动化验收标准,弥合自然语言需求与生产级代码之间的语义鸿沟。它依赖的不是模型参数规模,而是对架构权衡、领域合规(如HIPAA/PCI DSS)和可观测性设计的深度理解。典型应用场景包括医疗预约系统快速原型、金融风控接口合规生成及IoT网关配置化开发。本文聚焦如何用《意图锚定文档》、分阶段提示工程与Git集成流水线,将氛围编码从个人技巧升级为可度

weixin_30607029的博客 407

Django与FastAPI技术选型:全栈框架与高性能API的对比分析

Web开发框架是构建现代应用的核心技术基础,其设计理念直接影响系统架构和开发效率。Python生态中的Django采用全栈式设计,内置ORM、Admin等组件,适合快速构建功能完备的企业级应用;而基于ASGI的FastAPI则凭借异步IO和类型提示系统,在高并发API和微服务场景展现优势。从技术原理看,Django的同步模型适合传统CRUD应用开发,FastAPI的异步架构则优化了I/O密集型任务处理。工程实践中,CMS和电商平台往往选择Django以利用其成熟生态,物联网和实时系统则倾向FastAPI实现

diaohuyi6830的博客 327

python库sqlacodegen生成sqlalchemy模型对象代码

使用SQLAlchemy,需要将数据库表按照其识别的格式创建成Model,但一般情况下都是已经创建并定义好了数据库表,再创建Model。如果人工根据表结构写Model,不仅费时费力,还难免会出错。而使用sqlacodegen,则可自动生成sqlalchemy表对象模型。

weixin_42551921的博客 644

d2a:它将Django模型转换为SQLAlchemy模型

要求 Python:3.5或更高版本。 经过3.6、3.9测试 Django:2.x,3.x 用2.2.9、3.0.1、3.1.1测试 SQLAlchemy:1.1或更高版本。 已测试1.1.0、1.4.1 安装 $ pip install d2a 将d2a添加到settings.INSTALLED_APPS 。 INSTALLED_APPS = [ 'django.contrib.admin' , 'django.contrib.auth' , 'django.contrib.contenttypes' , 'django.contrib.sessions' , 'django.contrib.messages' , 'django.contrib.staticfiles' , # top or here 'd2a' ,

Django、Flask与Tornado核心差异与选型指南

Python Web框架是构建后端服务的基础技术栈,其本质差异在于架构哲学与运行模型:Django采用全栈式同步MVT架构,强调约定优于配置;Flask以微内核设计支持插件化扩展,赋予开发者高度控制权;Tornado则基于异步事件循环,专为高并发长连接场景优化。三者在请求处理生命周期、数据持久化方式、错误处理机制及部署模型上存在根本性分野。技术选型不应聚焦语法差异,而需结合业务并发特征、开发迭代效率与团队工程能力综合判断。本文深入对比三框架在真实生产环境中的实现逻辑、性能边界与典型陷阱,覆盖用户注册API的

weixin_30268921的博客 412

genmodel:自动生成 django 或 sqlalchemy 模型

genmodel 通过在设置文件中使用它们的描述自动生成 django 模型。 如果您有一个频繁更改的架构,或者一个非常大的架构,手动更新会很乏味,您可以简单地使用 genmodel 来完成繁重的工作。 输出将是一个完整的 python 文件,可以保存并开箱即用。 但是,如果您使用它来管理经常更改的架构,我建议您检查输出。 用法: genmodel --settings=modelsettings > path/to/models.py 所有输出都发送到 stdout,错误或警告发送到 stderr。 但是,如果发生错误,则不会有任何输出。 设置文件作为相对于当前工作目录(或在您的 sys 路径中)的模块导入,因此在上面的示例中,您的设置文件应该是 modelsettings.py。 要在 models/manifest.py 中导入文件,您将使用genmodel --settin

Django、Flask、Tornado框架选型实战指南

Web框架是构建服务端应用的核心基础设施,其本质是HTTP请求处理、路由分发、中间件编排与异步IO调度的技术载体。理解Django的全栈约定、Flask的显式可拆卸设计和Tornado的单线程事件循环原理,有助于规避N+1查询、上下文丢失、连接池耗尽等高频工程陷阱。三者技术价值迥异:Django胜在开箱即用的生产就绪能力,Flask强于轻量嵌入与微服务解耦,Tornado专精高并发长连接场景。典型应用场景包括内部管理系统(Django admin)、边缘设备API(Flask单文件部署)、实时协作服务(To

weixin_33901926的博客 366

Python的Django框架中使用SQLAlchemy操作数据库的教程

SQLAlchemy是Python一个专门的数据库管理工具,如果对Django ORM觉得有些生疏的话完全可以结合SQLAlchemy,这里我们就来总结一下Python的Django框架中使用SQLAlchemy操作数据库的教程

Python使用LDAP做用户认证的方法

主要介绍了Python使用LDAP做用户认证的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

LLM+Cursor驱动的大规模代码重构方法论

代码重构已从语法替换升级为认知建模——传统工具仅定位‘哪里调用’,而大语言模型(LLM)结合编辑器原生环境(如Cursor)可理解‘为何如此设计’及‘修改如何影响系统契约’。其核心原理在于利用上下文锚点、动态影响面测绘与契约驱动验证,将语义理解转化为可执行的渐进式切片操作。技术价值体现在显著降低跨模块重构的认知负荷与漏报率,支撑微服务、异步迁移、协议兼容等复杂场景。本文聚焦真实工程闭环:从腐化识别、安全切片到契约回归测试,深度融合LLM语义推理与人工守门机制。

weixin_30542079的博客 300

EtherCAT应用层协议选型指南:CoE、SoE、EoE、FoE、AoE到底怎么选?看完这篇就懂了

本文深入解析EtherCAT应用层协议(CoE、SoE、EoE、FoE、AoE)的选型策略,从实时性、数据吞吐量和功能完整性三大核心指标出发,提供工业场景下的实战决策框架。通过技术特性对比、混合协议架构设计和常见故障规避指南,帮助工程师优化自动化设备通信性能。

weixin_28718793的博客 490

FastAPI高性能Web开发:从类型提示到异步实战全解析

Python Web开发中,类型提示和异步编程是现代框架的核心技术。类型提示通过静态类型检查提升代码可维护性,而异步编程利用事件循环实现非阻塞I/O操作,显著提升并发性能。FastAPI巧妙结合这两项技术,基于Pydantic实现自动数据验证,依托Starlette提供原生异步支持。其技术价值在于解决了传统Python框架在开发效率与运行时性能间的矛盾,特别适合高并发API、实时数据推送等场景。通过自动生成OpenAPI文档和强类型验证,FastAPI大幅降低了前后端联调成本,为微服务架构和数据处理应用提供

weixin_33749131的博客 404

单相PWM整流器的数学模型、工作原理

单相PWM整流器的数学模型、工作原理

weixin_58670090的博客 1万+

UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount()【已解决】

UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount()【已解决】

围炉夜敲的博客 1万+
上一篇: 3 Flask Web开发:记一次flask模板渲染实践
下一篇: 记一次:django的页面操作的sql分析
github_38596081
博客等级 码龄10年 40粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值