Flask sqlalchemy插入数据正常却不能正常读取什么原因,flasksqlalchemy,我写的demo程序fro
Flask sqlalchemy插入数据正常却不能正常读取什么原因,flasksqlalchemy,我写的demo程序fro
我写的demo程序
from flask import Flaskfrom flask.ext.sqlalchemy import SQLAlchemyfrom flask.ext.script import Manager,Shellapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:123456@127.0.0.1/hello'#app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir,'data.sqlite')manager = Manager(app)db = SQLAlchemy(app)class User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), unique=True) def __repr__(self): return '<User %r>' % self.usernamedef make_shell_context(): return dict(app=app,db=db,User=User)manager.add_command('shell',Shell(make_context=make_shell_context))if __name__ == '__main__': manager.run()
可以再mysql插入数据,插入之前:
mysql> select * from users;
+------+-------------+---------+
| id | username | role_id |
+------+-------------+---------+
| NULL | yzxu | NULL |
| NULL | dayiguizhen | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | test | NULL |
+------+-------------+---------+
13 rows in set (0.00 sec)
yzxu@ubuntu:~/py/github$ python sql.py shell>>> user = User(username='after')>>> db.session.add(user)>>> db.session.commit()
插入成功:
mysql> select * from users;
+------+-------------+---------+
| id | username | role_id |
+------+-------------+---------+
| NULL | yzxu | NULL |
| NULL | dayiguizhen | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | yzxu | NULL |
| NULL | test | NULL |
| NULL | after | NULL |
+------+-------------+---------+
14 rows in set (0.00 sec)
但是查询不到东西
>>> User.query.filter_by(username='after').all()[None]
但是把URI换成SQLite的就可以查询到
>>> db.create_all()>>> u = User(username='yzxu')>>> db.session.add(u)>>> db.session.commit()>>> User.query.all()[<User u'yzxu'>]>>> quit()
是不是把URI换成mysql还有进行一些其他的操作?
我知道问题出在哪了。
这个users表是我在数据库手动创建的,所以忘记吧id设为主键。如果使用ORM的create_all()方法创建,就可以创建正确的表了。
编橙之家文章,
相关内容
- Python从mongodb数据查找数据那个快,pythonmongodb查找,有一
- Python语言中self参数应该如何理解,python语言self参数,为
- Python正则匹配问题求高手帮忙,python高手帮忙,这个正则
- Python分解质因数脚本源码纠错求助,python脚本源码,
- 股票与python的应用问题,提取csv制定时间段的数据内容,
- xadmin成功安装后django报错:Apps aren't loaded yet是什么原因
- Python下列表创建字典怎么实现,python列表创建字典,简单
- 实现win7查找指定程序安装目录的python方法,win7python,先
- Python有了asyncio和aiohttp在爬虫这类型IO任务中多线程/多
- 如何将flask安装扩展在ext包里面,flask扩展ext包,如图:
评论关闭