【发布时间】:2014-04-07 18:41:33
【问题描述】:
我想在 Python 中执行这个查询:
cur=self.con.execute("insert into %s(url_id,url_name,url_title) values(%d,'%s','%s')" % (table,url_i,url_n,url_t))
在这里,我分别在 url_id、url_name 和 url_title 列中插入 url id、url name 和 url title。 id 和 url 被很好地插入,但不是 url_title。 url_title 列是空白的。
如果我们只是为了好玩,交换 url_n 和 url_t 的位置,那么问题仍然存在!我认为问题可能与 url_title 列本身有关,但这个小实验证明问题可能与 url_t 变量有关。
我们通过使用 BeautifulSoup 和 Urllib2 提取特定网页的实际 url 标题来获取 url_t 的值。如果你有兴趣,这里是函数:
def title(self,soup):
url_title=soup.title.string
return url_title
这将返回我要插入数据库的 url 标题。
我使用 Django 模型创建了表,我们打算在其中插入值。这是models.py文件:
class url_list(models.Model):
url_id=models.IntegerField()
url_name=models.CharField(max_length=200)
url_title=models.CharField(max_length=200)
def __unicode__(self):
return self.url_name
那么,我做错了什么?
【问题讨论】:
-
你在解析什么html(提供链接或相关的html代码)?此外,在
execute()调用之前检查 table、url_i、url_n、url_t 变量的值。 -
这是我自己创建的一个简单的静态 HTML 文档。我有一组这样的文档,它们各自的 url 和 url 标题应该存储在 Db 中,这没有发生。我检查了所有值,它们似乎是正确的,但它没有被插入。这就是问题所在。
-
为什么要使用原始 SQL 插入而不是使用模型层?
-
对不起,我是这方面的新手。真的没有让你感到抱歉。