django从mysql数据表导入models.py报错

错误内容

SyntaxError: source code string cannot contain null bytes
Exception in thread django-main-thread

错误场景描述

使用django框架连接远程MySQL数据库时,从数据表中使用python manage.py inspectdb --database default 表名 > apps/goods/models.py命令导入到models.py时,发生以上报错或下图报错。
在这里插入图片描述

解决方案

认真看看你导入的models.py界面的编码格式是不是UTF-8,就是这个问题导致的,转换一下就行。是由于导入时解析主机默认是UTF-16LE导致,转换一下就行。
在这里插入图片描述

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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
发出的红包

打赏作者

无聊的邓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值