设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 6403|回复: 4
打印 上一主题 下一主题

web.py SQlite相关问题

[复制链接]

3

主题

0

好友

25

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2018-2-14 08:06:25 |只看该作者 |倒序浏览
老师们好,又见面了。我肯定是建立数据库里的表了,但是只有建立的时候才能查到信息。关闭以后再查,用‘.tables’就什么也没有了,不知道为什么,是因为数据库保存路径的问题吗?
下面是微信平台上关于简单数据库那一部分的代码。

import web

urls = (
'/', 'index'
)

db = web.database(dbn='sqlite',db='MovieSite.db')

render = web.template.render('templates/')

class index:
    def GET(self):
        movies = db.select('movie')
        return render.index(movies)

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()
问题是我的网页总是报错:no such table:movie.
我确定自己已经建好表了,cmd相关情况如下:

D:\python>sqlite3
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .databases
main:
sqlite> create table movie(title,year,country,abstract);
sqlite> insert into movie
   ...> values ('阿甘正传', 1994, '美国', 'Life is like a box of chocolates.');
sqlite> insert into movie
   ...> values ('肖申克的救赎', 1994, '美国', 'Hope is a good thing.');
sqlite> select*from movie;
阿甘正传|1994|美国|Life is like a box of chocolates.
肖申克的救赎|1994|美国|Hope is a good thing.
sqlite> .tables
movie
sqlite> .quit

D:\python>python web1.py 127.0.0.1
http://127.0.0.1:8080/
ERR: SELECT * FROM movie

Traceback (most recent call last):
  File "C:\Python3\lib\site-packages\web\application.py", line 257, in process
    return self.handle()
  File "C:\Python3\lib\site-packages\web\application.py", line 248, in handle
    return self._delegate(fn, self.fvars, args)
  File "C:\Python3\lib\site-packages\web\application.py", line 488, in _delegate
    return handle_class(cls)
  File "C:\Python3\lib\site-packages\web\application.py", line 466, in handle_class
    return tocall(*args)
  File "D:\python\web1.py", line 13, in GET
    movies = db.select('movie')
  File "C:\Python3\lib\site-packages\web\db.py", line 705, in select
    return self.query(qout, processed=True)
  File "C:\Python3\lib\site-packages\web\db.py", line 1058, in query
    out = DB.query(self, *a, **kw)
  File "C:\Python3\lib\site-packages\web\db.py", line 665, in query
    self._db_execute(db_cursor, sql_query)
  File "C:\Python3\lib\site-packages\web\db.py", line 596, in _db_execute
    out = cur.execute(query, params)
sqlite3.OperationalError: no such table: movie
127.0.0.1:54375 - - [13/Feb/2018 23:59:13] "HTTP/1.1 GET /" - 500 Internal Server Error




回复

使用道具 举报

1

主题

0

好友

9

积分

新手上路

Rank: 1

沙发
发表于 2018-4-18 20:15:26 |只看该作者
同学你好啊,我的也是说没有movie这个表,可是我通过在sqlite的控制台输入命令.tables,结果显示movie,说明存在的吧。请问你是如何解决的呢,谢谢
回复

使用道具 举报

1

主题

0

好友

38

积分

新手上路

Rank: 1

板凳
发表于 2018-6-10 21:25:13 |只看该作者
我也遇到同样的问题,请问同学你最后是怎么解决的呢?
而且我不知道我创建的数据库存储在哪里,我是C盘下进入sqlite控制台的,但是创建完后到C盘去找却找不到这个数据库文件,求教QWQ
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

地板
发表于 2018-6-10 23:51:25 |只看该作者
这个数据库文件,你们最好手动指定位置

想要把sqlite3创建数据库文件到指定路径:(windows 为例)

1.cmd进入到你想要保存文件的路径

2.sqlite3 database.db

https://blog.csdn.net/qq_27246079/article/details/79636085
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

5#
发表于 2018-6-19 14:44:07 |只看该作者
我已经解决了,你建立运行sqlite3 MovieSite.db 的之前,先把运行位置定位到你code.py所在的目录,具体方法是cd C:/Users/zzz/Desktop/PYTHON练习/web-practice/,当然这是我的目录;然后在进行一系列的数据库建表插入工作就可以了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-22 08:30 , Processed in 0.016144 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部