Python 创建已存在的数据表模型models

首先是先创建django项目。有两种方式:一种使用pycharm建项目;一种是使用命令。

  • 使用pycharm建项目如下

  • 使用命令
  1. 生成模型文件
    python3 manage.py inspectdb
    

     

项目模型和app都创建后,然后再执行如下命令就可以快速创建已存在数据表模型:

python manage.py inspectdb > app/models.py

 

新建表模型创建操作可以参考:https://blog.csdn.net/zhangshuaijun123/article/details/84073927

  • 创建 和 配置数据库
    1).创建数据库 - webdb
        create database webdb default charset utf8 collate utf8_general_ci;
    2).Django的数据库配置
        在settings.py中配置数据库的信息
        DATABASES = {
            'default':{
                'ENGINE':django.db.backends.sqlites,
                'NAME':os.path.join(BASE_DIR,DB.sqlite3),
            }
        }
        1.ENGINE:指定要连接的数据库的驱动程序
            连接MYSQL的话可以取值为:
        		'django.db.backends.mysql'
        2.NAME:指定要连接到的数据库的名称
            连接mysql的话可以取值为:
                数据库名
        3.USER:指定登录到数据库管理系统的用户名
            连接到mysql的话,可以为:root
        4.PASSWORD:指定登录到数据库管理系统的密码
        5.HOST:指定要连接到的主机地址
            如果是本机的话:127.0.0.1或localhost
        6.PORT:指定端口号
            mysql的默认为3306

示例

		DATABASES = {
		    'default': {
		        'ENGINE': 'django.db.backends.mysql',
		        'NAME': 'webdb',
		        'USER': 'root',
		        'PASSWORD': '123456',
		        'HOST': 'localhost',
		        'PORT': 3306,
		
		    }
		}
	3).编写models
	   在创建的app下的models中编写(不要忘记将app添加到seeting.py中的
	   INSTALLED_APPS 中)
		1.Models的语法规范
            class ClassName(models.Model):
                属性 = models.FIELDYPE(FIELD_OPTIONS)
                    FIELDTYPE : 字段类型
                        CharField()        
                    FIELD_OPTIONS:字段选项(字段说明)
                        max_length=30
       2. 常见的字段名和字段选项
       
           字段类型 FIELDTYPE
            1.BooleanField()
                编程语言中使用true 或 false 来表示该列的值
                数据库中使用1 或0 来表示具体的值
                数据类型为:tinyint

            2.CharField()
                编程语言中使用字符串来表示该列的值
                数据库中也是字符串
                数据类型为:varchar
                注意:必须要指定max_length参数值

            3.DateField()
                编程语言中使用字符串或者Date类型的数据表示该值
                数据库中使用的是时间字符串
                数据类型为;date
            4.DateTimeField()
                数据类型为:datetime
            5.DecimalField()
                编程语言中使用数字(小数)来表示该列的值
                数据库中使用小数表示
                数据类型:decimal
                money = models.DecimalField(max_digits=7,decimal_places=2)

            6.FloatField()
                编程语言中使用数字(小数)来表示该列的值
                数据库使用小数
                数据类型:float
                
            7.IntegerField()
                数据类型:int
                
            8.EmailField()
                编程语言中使用字符串来表示一段email地址
                数据库中使用字符串表示
                数据类型:varchar

            9.URLField()
                编程语言中使用字符串来表示一段网址
                数据库中使用字符串表示
                数据类型:varchar

            10.ImageField()
                目的:存储图片的路径
                数据类型:varchar
                image = models.ImageField(upload_to='images/')

        字段选项:FIELD_OPTIONS
            1.default
                作用:为当前字段指定默认值
            2.null
                作用:指定当前字段是否为空,默认值为False,不能为空
            3.db_index
                作用:指定是否为当前指定索引
            4.db_column
                作用:指定当前属性映射到表中的类名,如果不指定则采用属性名称作为类名

示例

# 创建一个实体类 - Publisher(出版社)
# 1.name : 出版社名称(varchar(30))
# 2.address: 出版社所在地址(varchar(200))
# 3.city:出版社所在的城市(varchar(50))
# 4.country:出版社所在的国家(varchar(50))
# 5.website:出版社的网址(varchar(200))
    class Publisher(models.Model):
	name = models.CharField(max_length=30)
	address = models.CharField(max_length=200)
	city = models.CharField(max_length=50)
	country = models.CharField(max_length=50)
	website = models.URLField()
   4)  将数据同步回数据库
   		   先后执行第1 步和第2 步
        1. ./manage.py makemigrations
            作用:将每个应用下的modeles.py文件生成一个数据库的中间文件,并将中间文件保存
            到migrations的目录中
        2. /manage.py migrate
            作用:将每个应用下的migrations目录中的中间文件同步到数据库中

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先需要安装 `pymysql` 模块,可以使用以下命令进行安装: ``` pip install pymysql ``` 接下来,可以按照以下步骤使用 `pymysql` 和数据模型(models.py)创建 MySQL 表及表结构: 1. 在 `settings.py` 文件中配置数据库连接信息: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'database_name', 'USER': 'database_user', 'PASSWORD': 'database_password', 'HOST': 'database_host', 'PORT': 'database_port', } } ``` 2. 在 `models.py` 文件中定义数据模型: ```python from django.db import models class User(models.Model): name = models.CharField(max_length=50) age = models.IntegerField() ``` 3. 在 `views.py` 文件中创建表结构: ```python import pymysql from django.conf import settings from myapp.models import User def create_table(): conn = pymysql.connect( host=settings.DATABASES['default']['HOST'], user=settings.DATABASES['default']['USER'], password=settings.DATABASES['default']['PASSWORD'], db=settings.DATABASES['default']['NAME'], charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) try: with conn.cursor() as cursor: # 创建 User 表 cursor.execute(''' CREATE TABLE IF NOT EXISTS `myapp_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ''') conn.commit() finally: conn.close() ``` 4. 调用 `create_table()` 函数创建表结构: ```python create_table() ``` 这样就可以使用 `pymysql` 和数据模型(models.py)创建 MySQL 表及表结构了。注意,以上代码只是示例,实际使用时需要根据实际情况修改配置信息和数据模型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值