V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  rogwan  ›  全部回复第 73 页 / 共 74 页
回复总数  1472
1 ... 65  66  67  68  69  70  71  72  73  74  
@honmaple 根据你提供的方案调试的基本都 OK 啦,谢谢你的建议!
@honmaple 非常感谢!看起我上面的第二个问题,是需要你说的用 url_for 跳一次才能解决。只在一个函数里处理,判断写了好几层,自己都快看晕了。。。
现在搞定了上面分页传值这个问题了,又出现新故障:
https://example.com/search?keyword=foo&page=2
在这个第二页的搜索表单里回传了 foo 参数,但是用户再手动输入别的 keyword (比如 xxoo ),点击“提交”后,还是显示原来的搜索结果(即:还是搜索 keyword=foo ,而不是搜索 keyword=xxoo )。
@honmaple 嗯,是用 wtforms 的。现在遇到的问题是:在第一页通过 form 取到 keyword 之后,传给模板,分页的下一页是通过 SALAlchemy 的 paginate()方法,我在那里添加 url_for 参数,返回值是空的。搞得下一页,就成了空白。。。

#form.py
class SearchForm(Form):
search_keyword = StringField('', validators = [DataRequired()])
submit = SubmitField('Start Search')

#view.py
@app.route('/search', methods=['POST', 'GET'])
def search():
form = SearchForm():
keyword = form.search_keyword.data

page = request.args.get('page', 1, type=int)
value = request.args.get('keyword')

if form.validate_on_submit():
pagination = Post.query.filter(Post.content.like(keyword))paginate(
page, per_page=current_app.config['default'], error_out=False)

posts = pagination.items
return render_template('search.html', posts=posts, pagination=pagination, form=form, value=value)

#search.html

<div class="list">
{% include 'list.html' %}
</div>
{% if pagination %}
<div class="pagination">
{{ macros.pagination_widget(pagination, '.search', value=value)}}
</div>
{% endif %}
@kaneg

ajax 异步加载的方法,我只用过和后台请求简单的数据返回。
页面刷不刷新都可以,主要是这个 ajax 配合 Flask SQLAlchemy 的 Pagination 分页,以前没使过>_<!!,不知道要调试多久才能搞定。。。 有推荐的文章可以参考下吗?
@hiro0729
@WittBulter

参考官方文档介绍,用 url 方式传值:
http://flask.pocoo.org/docs/0.11/quickstart/#url-building
--------------------
你可以用 args 属性来接收在 URL ( ?key=value ) 中提交的参数:
searchword = request.args.get('key', '')
--------------------
@app.route('/search', methods=['GET'])
def search():
form = SearchForm():
keyword = form.search_keyword.data

value = request.args.get('keyword')

这样写,点击“下一页”,还是取不到 value 的值啊
@hantsuki medium.com 做的很好啊,不管什么浏览器,连 IE 都显示原生 href 字符,不会进行 url 转码( Urlencode )。
@hantsuki 你太牛了! SO 上的问题都被你抄家了。。。
@firstway
@tifan

建议可以看下 medium.com ,在任何页面点击用户名,跳转的页面 url 里都是 https://medium.com/@username 这个原生格式,@字符并没有被转码。
@yeyeye 谢谢解释,你的理解完全正确。
2016 年 7 月 6 日
回复了 liangmishi 创建的主题 Python 喜欢写爬虫,感觉好难找工作
Web 涉及的技术环境更多、更复杂,没有做爬虫来的单纯些。
2016 年 7 月 6 日
回复了 awolfly9 创建的主题 C 程序员要不要为了面试刷很多面试题
现在回去做高考题,未必做的过高三学生啊。对自己工作经验有信心的,一般直接带自己编写的代码,去给面试人员讲就好了。面试官听不懂,说明也没必要去了;能听懂自然会认可你的经验价值。
想象中,如果在初学阶段,有个技术大牛能够随时请教,呼之即来,来之能问,问之能 Done !当然是个快速进步的好办法,不用把无数的青春耗在 debug 上,有时候连 debug 的方向都是错的,这个时候有人指点一下,必然节省很多时间。

为什么没有这样的人呢?最根本的原因是经济上的。这样的牛人老师随时 stand by ,你一般人要么付不起一对一老师的薪资,要么付得起也觉得不合算。如果是按 Q&A 的数量来计费,更加无法衡量价值,因为一个问题的解决难度,从来就没有准确的衡量方法,你这个红包该包多少呢?

回到现实,技术晋级普遍的方式,大概也就是自学+项目操练+网络交流,这样的路径了吧。
2016 年 7 月 2 日
回复了 spacehulk 创建的主题 Python Flask 感觉没有 Django 好用
总的来说,还是推荐 Flask 。 Flask 本身的文档简洁明了;框架结构更开放; sqlalchemy 既可以写对象映射的语句,也可写 sql 原生语句;有一本 Flask web 的中文经典教程,质量非常高;现在重要的库都支持 Python3 。
如果只是做个官网,或者现在很常见的 APP 下载单页站, Flask/django 那个熟选哪个,没什么区别,如果未来是做新闻内容类型的网站, django 也没什么问题,但是如果业务逻辑定制度很高, Flask 处理起来,会更简洁明了;这方面 django 用不上的功能可能比用的上的模块要多多。
@sfree2005 看起来你这个“粗暴”的方法是很实用的,哈哈。是分库分表的思路啊。其实 Article 表里就是内容 content ( text 类型)占空间,其他的字段全部导到内存里也没多大。
@daybyday 谢谢!负载过重的话,这是个可行的方式
yield_per 倒是一个看起来可以平衡内存占用和 SQL 查询效率的一个方式,以前没有用过,可以尝试下实际的运行效率好不好。
@NearTan "SQLAlchemy 层",你是指用 ORM 的 xxx.query.filter(www.query.filter(www.query.filter()))这样的嵌套查询吗?
@ChiChou @NearTan 主要是因为要把这些 Articles 先全部取出来,再根据 author/ip/post_time 等等做多重运算后,再 remove 一些数据。分页只能放在最后呈现的阶段啊。(当然,也可以把这些多重运算,在数据库中用 SQL 语言先解决,这个就是前面提到的,担心复杂的 sql 语句效率的问题)
@loading 嗯,一般情况下这个必须是值得的。就是遇到 Article 这种对象,有文章的内容( text 类型),可能一篇文章记录就几十 K 啊。比如查询出来用户关注的文章, 1 个用户关注 1000 个人,想象下 1 万个用户,那内存得要多大啊?
1 ... 65  66  67  68  69  70  71  72  73  74  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3142 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 21ms · UTC 13:01 · PVG 21:01 · LAX 06:01 · JFK 09:01
♥ Do have faith in what you're doing.