Django 中 request.GET 获取 form 中的值

2015-07-12 01:19:37 +08:00
 ciba1990

前天用V友方法request.GET确实能够获取form的值,但是放到URL里面就会报错“name 'request' is not defined”,把代码中str(link[0])换成request.GET.get('q','')却又能传输到变量,是赋值问题还是其他什么问题。
报错内容:
NameError at /search/
request' is not defined
/home/mysite/urls.py in <module>
url(r'^search/', include('search.urls')), ...
▶ Local vars

views.py代码
from bs4 import BeautifulSoup
import urllib2
from django.template import Context,loader
from django.http import HttpResponse
keywords = str(request.GET.get('q',''))
url='https://www.baidu.com/s?wd=%s' % keywords
html=urllib2.urlopen(url).read()
soup = BeautifulSoup(html)

link = soup.find_all('div')
def index(request):
template = loader.get_template('index.html')
context = Context({'keyword':str(link[0])})
return HttpResponse(template.render(context))

4779 次点击
所在节点    Python
11 条回复
ciba1990
2015-07-12 01:27:53 +08:00
新手提问,多多包含。
Septembers
2015-07-12 01:33:24 +08:00
因为模板默认不会注入任何信息 也就是说你需要手动注入
ciba1990
2015-07-12 01:36:05 +08:00
@Septembers 我只是想把request.GET的值传到keywords这个变量,如果不能传,那为什么可以传给keyword这个变量。
nealv2ex
2015-07-12 01:57:02 +08:00
“name 'request' is not defined
这个报错信息麻烦lz解释一下什么意思

keywords = str(request.GET.get('q',''))

这里的request是什么,哪里来的,那个生命周期里存在这个request

错误提示明明说的很清楚,难道还不会放到翻译软件翻译一下?
ciba1990
2015-07-12 01:59:15 +08:00
@nealv2ex
request.GET放到Context()就可以,放到外面就不行,是不是赋值方式不对。
nealv2ex
2015-07-12 02:03:32 +08:00
def index(request):

你猜这句什么意思

lz写代码完全靠猜啊,没有语言基础,不看框架教程
ciba1990
2015-07-12 02:06:22 +08:00
@nealv2ex
我放到里面了 还是报错,
keywords没定义
url='https://www.baidu.com/s?wd=%s' % keywords
ciba1990
2015-07-12 02:08:51 +08:00
@nealv2ex 好了,明白了,搞定了。
nealv2ex
2015-07-12 02:12:20 +08:00
keywords = str(request.GET.get('q',''))
url='https://www.baidu.com/s?wd=%s' % keywords
html=urllib2.urlopen(url).read()
soup = BeautifulSoup(html)

link = soup.find_all('div')


全部放进去,原因嘛,反正你也不在意。
已经被骗不少铜币了。
ciba1990
2015-07-12 02:18:02 +08:00
@nealv2ex
这种方式可以的,但是填中文会提示q编码不对,
'ascii' codec can't encode characters in position 30-32: ordinal not in range(128)
MrEggNoodle
2015-07-12 10:24:10 +08:00
Django新人吗?那我答非所问的分享一些我的入门资料给你~
http://www.ziqiangxuetang.com/django/django-tutorial.html
这是一个非常好关于Django的简明教程,国内的,希望对你有帮助。

http://django-china.cn
这是一个国内相对活跃的Django论坛。他的Q群很活跃。(155719011)

http://www.cnblogs.com/fnng/p/3737964.html
这是一个叫虫师的Blog,有几篇不错的Django入门教程,完整的小项目。

http://study.163.com/course/introduction/320022.htm#/courseDetail
这是网易云课堂的一个Django课程,免费的~

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

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

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

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

© 2021 V2EX