django 有model生成SQL以及现有反向表生成model

已有models生成SQL语句

语法 python manage.py sqlall app_name   # app_name, 在settings已经导入,

如:

INSTALLED_APPS = (
‘django.contrib.admin‘,
‘django.contrib.auth‘,
‘django.contrib.contenttypes‘,
‘django.contrib.sessions‘,
‘django.contrib.messages‘,
‘django.contrib.staticfiles‘,
"apps.libs.models.weixin",
)

python manage.py sqlall weixin

wei-2:tbkw (develop)admin$ python manage.py sqlall weixin
{‘DB_JX_MASTER_HOST‘: ‘mysql.rds.aliyuncs.com‘, ‘DB_JX_PORT‘: ‘3306‘, ‘DB_JX_USER‘: ‘tb‘, ‘DB_JX_PASSWORD‘: ‘tb‘}
BEGIN;
CREATE TABLE `wechat_config` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `user_id` integer NOT NULL,
    `app_id` varchar(50) NOT NULL,
    `app_secret` varchar(50) NOT NULL,
    `app_token` varchar(100) NOT NULL,
    `access_token` varchar(200) NOT NULL,
    `access_token_expire_in` integer,
    `add_time` datetime(6) NOT NULL
)
;
CREATE TABLE `wechat_menu` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `wechat_id` integer NOT NULL,
    `menu_name` varchar(50) NOT NULL,
    `menu_type` varchar(20) NOT NULL,
    `menu_key` varchar(50) NOT NULL,
    `menu_value` varchar(50) NOT NULL,
    `is_button` integer NOT NULL,
    `level_id` integer NOT NULL,
    `parent_id` integer,
    `sequence` integer NOT NULL
)
;
CREATE TABLE `wechat_autoreply` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `wechat_id` integer NOT NULL,
    `replay_type` integer NOT NULL,
    `keyword` varchar(100) NOT NULL,
    `is_welcome` integer NOT NULL,
    `unmatch` integer NOT NULL,
    `text` varchar(1000) NOT NULL,
    `media` varchar(100) NOT NULL,
    `add_time` datetime(6) NOT NULL
)
;
CREATE TABLE `wechat_material` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `wechat_id` integer NOT NULL,
    `title` varchar(100) NOT NULL,
    `author` varchar(100) NOT NULL,
    `content` longtext NOT NULL,
    `source_url` varchar(100) NOT NULL,
    `cover` varchar(100) NOT NULL,
    `cover_show` integer NOT NULL,
    `summary` varchar(1000) NOT NULL,
    `add_time` datetime(6) NOT NULL
)
;
CREATE TABLE `wechat_msg_push` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `wechat_id` integer NOT NULL,
    `is_push` integer NOT NULL,
    `template_id` integer NOT NULL,
    `title` varchar(100) NOT NULL,
    `content` longtext NOT NULL,
    `add_time` datetime(6) NOT NULL
)
;

$ python manage.py makemigrations weixin

有现有表反向生成models

语法 python manage.py inspectdb

wei-2:tbkw (develop)admin$ python manage.py inspectdb
{‘DB_JX_MASTER_HOST‘: ‘mysql.rds.aliyuncs.com‘, ‘DB_JX_PORT‘: ‘3306‘, ‘DB_JX_USER‘: ‘tb‘, ‘DB_JX_PASSWORD‘: ‘tb‘}
# This is an auto-generated Django model module.
# You‘ll have to do the following manually to clean this up:
#   * Rearrange models‘ order
#   * Make sure each model has one field with primary_key=True
#   * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
# Feel free to rename the models, but don‘t rename db_table values or field names.
#
# Also note: You‘ll have to insert the output of ‘django-admin sqlcustom [app_label]‘
# into your database.
from __future__ import unicode_literals

from django.db import models

class AuthUser(models.Model):
    username = models.CharField(unique=True, max_length=30)
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)
    email = models.CharField(max_length=75)
    password = models.CharField(max_length=128)
    is_staff = models.IntegerField()
    is_active = models.IntegerField()
    is_superuser = models.IntegerField()
    last_login = models.DateTimeField(blank=True, null=True)
    date_joined = models.DateTimeField()
    logins = models.IntegerField()
    phone = models.CharField(max_length=11, blank=True, null=True)
    qq = models.CharField(max_length=13, blank=True, null=True)

    class Meta:
        managed = False
        db_table = ‘auth_user‘

class BankAccount(models.Model):
    username = models.CharField(max_length=50)
    amount = models.DecimalField(max_digits=11, decimal_places=2)
    balance = models.DecimalField(max_digits=8, decimal_places=2)
    add_date = models.IntegerField()

    class Meta:
        managed = False
        db_table = ‘bank_account‘

.

时间: 2024-10-17 05:24:05

django 有model生成SQL以及现有反向表生成model的相关文章

PowerDesigner生成sql脚本

1.打开PowerDesigner->New Project; 2.填写项目名称,选择文件的存放路径: 3.新建一个模型,New Model: 4.选择概念模型,填写模型名称: 5.选择entity,创建实体模型: 6.点击模型图,填写表结构信息: 时间类型的数据格式说明: 对于创建过程中出现相同字段的情况处理: 更改前: 更改后: 7.将表结构创建完成后,进行表之间的关联,点击relationship将表与表直接关联起来: 选择表与表之间的关系: 8.生成物理模型图: 选择数据库类型 软件会自

PowerDesigner在生成SQL时报错Generation aborted due to errors detected during the verification of the mod

pdm 生成sql 时候 会弹  把 Check model  的勾 去掉 问题就解决了 原文地址:https://www.cnblogs.com/Vegeta/p/8398514.html

django 使用原生SQL语句反向生成MODELS.PY中的表结构

在一次工作中,有这么一个问题,就是要导入的数据字段不确定,但是还想使用django的ORM来对数据进行操作.. 琢磨了许久,弄个不完善的方案,但功能是能实现的,主要是思路.废话不多说了,丑陋的展示一下吧... from django.db import connection #粗陋的用数组和字符串表示一下要导入的数据表单项lis = ['ll', 'bb', 'yy'] #表示要建立的表单字段l = 'tablename' #表名ll = 'fff' new_table = connection

PowerDesigner中SQL文件、数据库表反向生成PDM

1      反向生成PDM 1)        创建一个空的PDM模型(选择对应的DBMS): 2)        选择[Database]--[Update Model from Database-]菜单: 1.1    使用SQL文件 1)        在新窗口选择对应[Using script files]--[(Add Files)].然后再弹出窗口选择对应的SQL文件.点击打开,完成选择. 2)        点击[确定]生成. 1.2    使用数据源 1)        选择数

django根据已有数据库表生成model类

django根据已有数据库表生成model类 创建一个Django项目 django-admin startproject 'xxxx' 修改setting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'sqlexam', 'USER': 'root', 'PASSWORD': 'root123456'

python 之 Django框架(orm单表查询、orm多表查询、聚合查询、分组查询、F查询、 Q查询、事务、Django ORM执行原生SQL)

12.329 orm单表查询 import os if __name__ == '__main__': # 指定当前py脚本需要加载的Django项目配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "orm_demo.settings") import django django.setup() # 启动Django项目 from app01 import models #返回QuerySet对象的方法: r

PowerDesigner生成sql及HTML格式数据库文档

一.PowerDesigner生成sql问题 生成sql的方法是 Database -->Generate Database (Ctrl + G ) 但是提示 Could not load VBScript engine. Check VBScript installation. Generation aborted due to errors detected during the verification of the model. 检查了好久 发现将check model 去掉就可以了!其

利用反射生成SQL语句

// 修改学员信息的方法 public bool ModifyStudent(MODEL.Students model) { // 利用反映获取类对所有属性,用来动态生成SQL语句 StringBuilder sbSql = new StringBuilder("update Students set "); // 先获得model 的Type类型 Type modeType = model.GetType(); // 通过Type类型得到它所有的公开属性 PropertyInfo[]

django中使用原生sql

在Django中使用原生Sql主要有以下几种方式: 一:extra:结果集修改器,一种提供额外查询参数的机制 二:raw:执行原始sql并返回模型实例 三:直接执行自定义Sql ( 这种方式完全不依赖model,前两种还是要依赖于model ) 实例: 使用extra: 1:Book.objects.filter(publisher__name='广东人员出版社').extra(where=['price>50']) Book.objects.filter(publisher__name='广东