Schema.sql的疑问

2013-05-08 16:22:02 +08:00
 shinerene
在看flask的文档 发现有个叫schema.sql的文档 请问有什么用?具体作用是干嘛的 ?能解释的清除一些吗?
谢谢啦!
2944 次点击
所在节点    Python
12 条回复
cloverstd
2013-05-08 20:09:54 +08:00
创建数据库
shinerene
2013-05-08 20:47:03 +08:00
@cloverstd 那为什么有了schema.sql之后还要有xxx.db这个文件呢 请问两个的区别在哪里?
scarlex
2013-05-08 21:18:45 +08:00
schema.sql里面写的是创建数据库的语句
xxx.db是由schema.sql生成的数据库吧
xavierskip
2013-05-08 23:10:40 +08:00
创建数据库的表结构用的呀,就是一堆sql语句,看来lz对数据库还不是很了解呀。
cloverstd
2013-05-09 00:11:36 +08:00
@shinerene 你看的 Flask 的教程里用的 SQLite
你可以先去看看 http://sql.learncodethehardway.org/ 这个再看 FLask 的这个教程也不迟
shinerene
2013-05-09 08:18:26 +08:00
@scarlex 恩 ~
@xavierskip 恩 刚刚开始学习额 对于数据库的一些基本操作语句有了解 但是 从头到尾创建i个数据库 还是很不了解
@cloverstd 这个教程很不错~谢谢了~
shinerene
2013-05-09 18:06:45 +08:00
@cloverstd 还有个问题 我按照flask的tutorial 写了个很简单的app 然后可以登陆 只要不推出运行着的程序 可是每次关掉之后 再次启动就提示 没有此用户 也就是说 用户信息没有被写入数据库吗?要怎么解决这个问题?
cloverstd
2013-05-09 18:27:41 +08:00
@shinerene commit()
数据修改后要 commit
cloverstd
2013-05-09 18:28:56 +08:00
@shinerene
你是按照这个吗?
def init_db():
with closing(connect_db()) as db:
with app.open_resource('schema.sql') as f:
db.cursor().executescript(f.read())
db.commit()

如果你按照这个 tutorial 这样初始化数据库,每次都会初始一遍的。
shinerene
2013-05-09 18:37:40 +08:00
@cloverstd 嗯嗯 对的 我就是按照这个的 请问要怎样来修改呢??
cloverstd
2013-05-09 19:19:42 +08:00
@shinerene 初始一遍就不要初始了
让 init_db() 只运行一遍
shinerene
2013-05-09 22:15:26 +08:00
@cloverstd ok!搞定了!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/68170

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX