我用Python写ORM,插入一条数据进MySql的时候报了:1366 Incorrect string value: '
这条数据是有中文的,所以很明显是编码问题!
我插入的数据格式:
以下是我的解决办法!
看我的文章,中有一篇是修改MySql的myini配置文件,修改MySql的字符编码格式修改成utf8格式的编码!
有可能你这步改完就可以了! 也有可能这步 *** 作完还是报错!那就看第二步。
第一步 *** 作完了,但是添加数据的时候还是报错,原因是因为第一步还没 *** 作完,你就已经建了一张表,我的表名是app_book。所以这张app_book的字符编码还是按我没修改字符编码之前的编码格式,所以这个时候我需要将这张表的编码格式转换一下,具体 *** 作如下!
比如:你可以先查看这张app_book表中的每个字段的编码格式
改变表的编码,为 utf8mb4 或者 utf8
OK! 完成以上 *** 作,再次执行ORM语句:
这次就没报错了,添加成功!
你不能直接存储一个类的实例啊,mongodb用bson存储数据,bson是json的binary形式,所以你只能存储javascript的基本类型、Object和Array这些东西。像beautiful soup里面的类的实例,你可以存储关键的数据,到你再需要用的时候,取出数据再构造一个新实例,而不是把这个实例存入数据库。
python3下用flask-sqlalchemy对mysql数据库 *** 作案例:
from flask import Flask
from flaskextsqlalchemy import SQLAlchemy
app = Flask(__name__)
appconfig['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@localhost/db_name'
db = SQLAlchemy(app)
class User(dbModel):
id = dbColumn(dbInteger, primary_key=True)
username = dbColumn(dbString(80), unique=True)
email = dbColumn(dbString(120), unique=True)
def __init__(self, username, email):
selfusername = username
selfemail = email
def __repr__(self):
return '<User %r>' % selfusername
admin = User('admin', 'admin@examplecom')
dbcreate_all() # In case user table doesn't exists already Else remove it
dbsessionadd(admin)
dbsessioncommit() # This is needed to write the changes to database
Userqueryall()
Userqueryfilter_by(username='admin')first()
以上就是关于Python: 写ORM插入MySql数据库报错:Incorrect string value: '全部的内容,包括:Python: 写ORM插入MySql数据库报错:Incorrect string value: '、python写了一个爬虫,内容储存到mongodb数据库,遇到一个错误不知怎么改,求大神帮忙、python flask 在查询数据库数据时遇到错误unable to get repr for <class 'app.model.xx.xx’>怎么办呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)