请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生

Python 实战(4):搜一下

[复制链接]

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2015-11-19 13:20:25 |显示全部楼层
hipeter 发表于 2015-11-18 19:47
想问下先生那个condition的内容是怎么定义的? 我试着进行如下的断句:
condition = r'{title like "[%(' + ...

不是加单引号,这个式子是
r'xxxxxx' + data.titile + r'xxxx'
为了拼出那个查询语句
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

1

好友

28

积分

新手上路

Rank: 1

发表于 2015-11-19 13:57:38 |显示全部楼层
crossin先生 发表于 2015-11-19 13:20
不是加单引号,这个式子是
r'xxxxxx' + data.titile + r'xxxx'
为了拼出那个查询语句 ...

明白了,thx.
回复

使用道具 举报

0

主题

0

好友

32

积分

新手上路

Rank: 1

发表于 2016-7-20 11:21:35 |显示全部楼层
先生,我还是没有懂r'title like "%' + data.title + r'%"'这个式子。这样r'xxxxxx' + data.title + r'xxxx'是为了拼出查询语句,然后title like "%搜索内容%",可这样一来就变成title like "%' + data.title + r'%" 了啊。而且为了防止python转义的“为什么一个在%前,一个在%后呢
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-7-20 12:43:44 |显示全部楼层
A_Tling 发表于 2016-7-20 11:21
先生,我还是没有懂r'title like "%' + data.title + r'%"'这个式子。这样r'xxxxxx' + data.title + r'xxxx ...

"%搜索内容%" 这个格式是给 sql 语句读的,不是python的防转义。
如果你觉得这边难理解,可以多分几个步骤来拼这个字符串,最终的目的就是你说的,拼出一个:
  1. title like "%搜索内容%"
复制代码
这样的字符串作为sql语句,然后交给数据库去执行
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

32

积分

新手上路

Rank: 1

发表于 2016-7-20 15:05:12 |显示全部楼层
crossin先生 发表于 2016-7-20 12:43
"%搜索内容%" 这个格式是给 sql 语句读的,不是python的防转义。
如果你觉得这边难理解,可以多分几个步骤 ...

也就是说搜索内容是' + data.title + r'是吗,可是这儿的r又代表什么呢
麻烦先生了,原谅我比较笨。。。
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-7-20 16:23:55 |显示全部楼层
A_Tling 发表于 2016-7-20 15:05
也就是说搜索内容是' + data.title + r'是吗,可是这儿的r又代表什么呢
麻烦先生了,原谅我比较笨。。。 ...

搜索内容是 condition:
  1. condition = r'title like "%' + data.title + r'%"'
复制代码
这个你看不明白的话,把他分解开来
  1. s1 = r'title like "%'        # title like "%
  2. s2 = data.title        # 搜索内容
  3. s3 = r'%"'        #  %"
  4. condition = s1 + s2 + s3
复制代码
最后 condition 就是
  1. title like "%标题%"
复制代码
这样一个字符串
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

32

积分

新手上路

Rank: 1

发表于 2016-7-20 17:17:04 |显示全部楼层
crossin先生 发表于 2016-7-20 16:23
搜索内容是 condition:这个你看不明白的话,把他分解开来最后 condition 就是这样一个字符串 ...

啊,我明白了。跪谢~~~
回复

使用道具 举报

0

主题

0

好友

50

积分

注册会员

Rank: 2

发表于 2017-3-5 16:30:09 |显示全部楼层
crossin先生 发表于 2016-7-20 16:23
搜索内容是 condition:这个你看不明白的话,把他分解开来最后 condition 就是这样一个字符串 ...

  我试了下这里可能不需要用r'转义内容'来转义吧
我是python3,用下面的语句一样可以生效
  def POST(self):
        data=web.input()
        condition='title like "%'+data.title+'%"'
        movies=db.select('movie',where=condition)
        return render.index(movies)
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2017-3-5 17:10:40 |显示全部楼层
nekonekobox 发表于 2017-3-5 16:30
我试了下这里可能不需要用r'转义内容'来转义吧
我是python3,用下面的语句一样可以生效
  def POST(sel ...

r不是转义,只是为了防止转义。当没有转义字符的时候,加不加都一样
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

24

积分

新手上路

Rank: 1

发表于 2017-6-22 17:25:52 |显示全部楼层
本帖最后由 Rune 于 2017-6-22 17:33 编辑

先生 我按照教程里写了代码结果搜索结果是none,我直接copy了你留在帖子里的代码只是改了数据库和模板的名字,用的是我自己的,其他都没动,结果搜索还是现实none。 请问该如何解决啊?
1.png
回复

使用道具 举报

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

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

GMT+8, 2024-3-29 09:32 , Processed in 0.026593 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部