鱼C论坛

 找回密码
 立即注册
查看: 2374|回复: 0

[技术交流] 《FlaskWeb开发:基于Python的Web应用开发实战》第4节

[复制链接]
发表于 2017-8-15 18:01:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 落叶飞空 于 2017-8-15 23:04 编辑

这一节学习Flask的表单操作实现一个生成微信撤回的昵称


最终效果如下:
1.png
网址如下(目前不能在微信中打开):
http://60.205.181.198/wechat

python代码如下:
  1. from flask import Flask, render_template
  2. from flask_wtf import FlaskForm
  3. from wtforms import StringField, SubmitField
  4. from wtforms.validators import DataRequired
  5. from flask_bootstrap import Bootstrap


  6. app = Flask(__name__)
  7. app.config['SECRET_KEY'] = 'hard to guess string'
  8. bootstrap = Bootstrap(app)

  9. @app.route('/')
  10. def index():
  11.     return render_template('index.html')


  12. class NameForm(FlaskForm):
  13.     name = StringField('名字', validators=[DataRequired()])
  14.     suffix = StringField('后缀', validators=[DataRequired()])
  15.     result = StringField('昵称')
  16.     submit = SubmitField('生成')


  17. @app.route('/wechat/', methods=['GET', 'POST'])
  18. def wechat():
  19.     form = NameForm()
  20.     if form.validate_on_submit():
  21.         name = form.name.data
  22.         suffix = form.suffix.data
  23.         form.result.data = chr(65197) + suffix + chr(65197) + name
  24.     return render_template('wechat.html', form=form)


  25. @app.route('/user/<name>')
  26. def user(name):
  27.     return render_template('user.html', name=name)


  28. @app.errorhandler(404)
  29. def page_not_found(e):
  30.     return render_template('404.html'),404

  31. if __name__ == '__main__':
  32.     app.run(debug=True)
复制代码


首先引入关键的库文件:
  1. from flask_wtf import FlaskForm
  2. from wtforms import StringField, SubmitField
  3. from wtforms.validators import DataRequired
复制代码


然后通过继承表单类定义我们需要的表单:
  1. class NameForm(FlaskForm):
  2.     name = StringField('名字', validators=[DataRequired()])
  3.     suffix = StringField('后缀', validators=[DataRequired()])
  4.     result = StringField('昵称')
  5.     submit = SubmitField('生成')
复制代码

其中表单由四部分组成:
名称分别为名字,后缀,昵称的三个文本框,一个名为生成的提交按钮。

然后定义我们的路由:
  1. @app.route('/wechat/', methods=['GET', 'POST'])
  2. def wechat():
  3.     form = NameForm()
  4.     if form.validate_on_submit():
  5.         name = form.name.data
  6.         suffix = form.suffix.data
  7.         form.result.data = chr(65197) + suffix + chr(65197) + name
  8.     return render_template('wechat.html', form=form)
复制代码


在templates文件夹下定义wechat.html:
  1. {% extends "base.html" %}
  2. {% import "bootstrap/wtf.html" as wtf %}
  3. {% block title %}Flasky{% endblock %}
  4. {% block page_content %}
  5. <div class="page-header">
  6. <h1>输入名字和后缀点击生成即可!</h1>
  7. </div>
  8. [code]{% import "bootstrap/wtf.html" as wtf %}
  9. {{ wtf.quick_form(form) }}
复制代码

其中负责通过bootsrap渲染表单。

  1. {% import "bootstrap/wtf.html" as wtf %}

  2. {{ wtf.quick_form(form) }}
复制代码


将微信昵称修改为生成的昵称即可实现撤回出现如下效果:
1.jpg

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-3 01:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表