您的位置:首页 > 编程语言 > Python开发

python web py入门(13)- 实现发贴到论坛

2018-02-25 10:05 543 查看
在前面已经说明白了实现登录论坛,当你进入论坛之后,一般就是想发表文章,简称为贴子,那么怎么样把你的文章从浏览器里发送给WEB服务器呢?其实这个过程还是比较复杂的,首先要在浏览器里实现一个编辑器,它是使用textarea标签来实现内容输入,使用css来实现工具条。如下图:



这个编辑的页面是由模板add.html实现,如下:$def with()

<form id="new_post" action="" method="post">
<table>
<tbody>
<tr>
<td><label for="title">标题</label></td>
<td>
<input type="text" id="title" name="title" style="width:800px" /><br />
<span id="for_title" class="validate_tip"></span>
</td>
</tr>
<tr>
<td><label for="content">内容</label></td>
<td>
<textarea id="content" name="content"></textarea><br />
<span id="for_content" class="validate_tip"></span>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" id="send_btn" value="发帖" /></td>
<td><span class="submit_tip"></span></td>
</tr>
</tbody>
</table>
</form>当你按下发贴的按钮之后,就会把文章的标题和内容发送给WEB服务器,在WEBPY里就会在这个类里收到这些内容:class Add:
def GET(self):
if model.User().current_id(): # 用户已登录
return titled_render('发帖').add()
else:
return titled_render().failed('操作受限,请先<a href="/login">登录</a>')

def POST(self):
i = web.input(title='', content='')
post_id = model.Post().new(i.title, i.content, model.User().current_id())
if post_id:
raise web.seeother("/view/%d" % post_id)
else:
return titled_render().failed('你不应该到达这里')它是通过post方法发送过来的,因此响应的是POST方法,它从web.input里获取网页里title和content名称的内容,然后把这两个内容发送到模型类model.Post(),就会调用new方法来把相应的内容保存到数据库里。
这样就可以完成发贴的过程,发完之后,就会跳转到当前发贴的位置,查看当前发表的文章,这一句代码就是实现它的:
raise web.seeother("/view/%d" % post_id)
其实,它是调用view.html模板来查看相关的文章,如下图:



到这里,就完成发贴的实现过程。
具体代码可以查看CSDN的下载,也可以从github下载:
https://github.com/9073204qq/caiforum

比特币源码入门教程

https://edu.csdn.net/course/detail/6998

深入浅出Matplotlib
https://edu.csdn.net/course/detail/6859

深入浅出Numpy
http://edu.csdn.net/course/detail/6149 

Python游戏开发入门

http://edu.csdn.net/course/detail/5690
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python webpy html