设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

Python 实战(3):更多的页面

[复制链接]

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

21#
发表于 2017-2-3 14:07:19 |只看该作者
shmxz1989 发表于 2017-2-3 13:08
嗯,现在情况是这样:
换成“hello world”重新建的movie.html也试过,依然是万年不变的出错提醒。。。
后 ...

不好说,看不到你的具体报错位置(截图上没截到)
删了还出错,那可能是数据库里的编码问题。但如果真是这样,列表页也应该出错。

怀疑是不是有其他地方弄乱了,你自己也没发现。建议你先全部用英文数据重新做一遍。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

82

积分

注册会员

Rank: 2

22#
发表于 2017-2-3 16:02:09 |只看该作者
本帖最后由 shmxz1989 于 2017-2-3 17:01 编辑
crossin先生 发表于 2017-2-3 14:07
不好说,看不到你的具体报错位置(截图上没截到)
删了还出错,那可能是数据库里的编码问题。但如果真是 ...

报错截图我重新截图了,不知道能否看出什么信息来,菜鸟一枚,还望见谅。
'utf8' codec can't decode byte 0xcf in position 9: invalid continuation byte,这个position 9指的哪里呢

补更:C大我已解决了。哈哈哈~,html、table文件啥的都没问题,问题还是在code代码里面。刚我先操练了实战4,发现post方法里查询数据用了where条件结果也是正常的。所以排除法推断是不是movie类方法的语句有问题,遂替换成先拼出condition字符串,然后直接where=condition,果然就好了。估计是web.py或者SQLite最新版本的问题。奶奶的折磨了我两天总算解决了。心里太特么爽了!嘎嘎嘎~~~

再次感谢C大不厌其烦地解答,感谢~

捕获.JPG (37.21 KB, 下载次数: 258)

捕获.JPG

捕获1.JPG (81.62 KB, 下载次数: 261)

捕获1.JPG

捕获2.JPG (89.37 KB, 下载次数: 255)

捕获2.JPG

回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

23#
发表于 2017-2-5 00:14:15 |只看该作者
shmxz1989 发表于 2017-2-3 16:02
报错截图我重新截图了,不知道能否看出什么信息来,菜鸟一枚,还望见谅。
'utf8' codec can't decode byte ...

似乎确实有这么个问题,之前好像有人遇到过。
解决了就好
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

50

积分

注册会员

Rank: 2

24#
发表于 2017-3-4 23:59:00 |只看该作者
crossin老师附件里给的py文件写的有问题,之前文档里是对的
#-*- coding:utf-8 -*-
import web
db=web.database(dbn='sqlite',db='MovieSite.db')
render=web.template.render('templates/')

urls = (
    '/', 'index',
    '/movie/(\d+)','movie',
)


class index:
    def GET(self):
        movies=db.select('movie')
        return render.index(movies)
   
class movie:
    def GET(self,movie_id):
        movie_id=int(movie_id)
        movie=db.select('movie',where='id=$movie_id',vars=locals())[0]
        return render.movie(movie)

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

25#
发表于 2017-3-5 01:04:29 |只看该作者
nekonekobox 发表于 2017-3-4 23:59
crossin老师附件里给的py文件写的有问题,之前文档里是对的
#-*- coding:utf-8 -*-
import web

具体是哪里的问题?我看了下没发现区别
是附件里的代码没有声明编码吗?
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

50

积分

注册会员

Rank: 2

26#
发表于 2017-3-5 15:59:32 |只看该作者
crossin先生 发表于 2017-3-5 01:04
具体是哪里的问题?我看了下没发现区别
是附件里的代码没有声明编码吗? ...

附件里的someweb-3-code.py写的是
class movie:
    def GET(self, movie_id):
        movie = db.select('movie', where='id=$int(movie_id)', vars=locals())[0]
        return render.movie(movie)

少了一个
movie_id=int(movie_id)的申明
而db.select里面又多了一个int(movie_id)
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

27#
发表于 2017-3-5 17:09:07 |只看该作者
nekonekobox 发表于 2017-3-5 15:59
附件里的someweb-3-code.py写的是
class movie:
    def GET(self, movie_id):

这个似乎是在某个版本下可行,但新版本好像就会报错
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

5

主题

1

好友

63

积分

注册会员

Rank: 2

28#
发表于 2017-3-22 20:06:04 |只看该作者
shmxz1989 发表于 2017-2-3 13:08
嗯,现在情况是这样:
换成“hello world”重新建的movie.html也试过,依然是万年不变的出错提醒。。。
后 ...

你怎么解决的,我遇到一样的问题
回复

使用道具 举报

5

主题

1

好友

63

积分

注册会员

Rank: 2

29#
发表于 2017-3-22 20:16:20 |只看该作者
shmxz1989 发表于 2017-2-3 13:08
嗯,现在情况是这样:
换成“hello world”重新建的movie.html也试过,依然是万年不变的出错提醒。。。
后 ...

亲,我遇到了一样的问题 第一页能显示,点击链接报错,加个朋友呗
我qq--979534665
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

30#
发表于 2017-3-22 21:32:18 |只看该作者
万建涛 发表于 2017-3-22 20:16
亲,我遇到了一样的问题 第一页能显示,点击链接报错,加个朋友呗
我qq--979534665
...

他说的应该是指这句:
movie = db.select('movie', where='id=$movie_id', vars=locals())[0]

这里改成文章中说的另一种方法:

condition = 'id=' + movie_id
movie = db.select('movie', where=condition)[0]
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-4-20 13:23 , Processed in 0.028786 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部