赞
踩
本项目将学习 Mariadb 作为数据库后端,Bootstrap 作为前端的技术栈,并实现一个清单应用。从中我们可以学习 Flask Web 应用框架,及 Mariadb 关系型数据库和 BootStrap web开发框架。
本应用修改自 TodoMVC 的 todo list 应用,使用 Mariadb 作为数据库后端,Bootstrap 作为前端的 Flask 应用。先给它起个好听的名字吧,方便之后称呼。
todo list => (自定义,随便起名称) => todoest
就像一般的 todo list 应用一样,todoest 实现了以下功能:
init.py
from flask import Flask from flask_sqlalchemy import SQLAlchemy from flask_script import Manager from flask_bootstrap import Bootstrap from flask_migrate import Migrate from flask_moment import Moment import pymysql app = Flask(__name__) pymysql.install_as_MySQLdb() #解决数据库报错问题 app.config.from_pyfile('../config.py') db = SQLAlchemy(app) manager = Manager(app) bt = Bootstrap(app) migrate = Migrate(app,db) moment = Moment(app)
forms.py(web表单)
from flask_wtf import FlaskForm from wtforms import StringField, PasswordField, SubmitField, SelectField, DateField from wtforms.validators import DataRequired, Email, Length, EqualTo, ValidationError # 注册表单 from app.models import User, Category class RegisterForm(FlaskForm): email = StringField( label='邮箱', validators=[ DataRequired(), # 不能为空 Email(), # 邮箱格式 ] ) username = StringField( label='用户名', validators=[ DataRequired(), ] ) password = PasswordField( label='密码', validators=[ DataRequired(), Length(6, 12, '密码必须为6-12位') ] ) repassword = PasswordField( label='确认密码', validators=[ EqualTo('password', '两次密码输入不一致') ] ) submit = SubmitField( label='注册' ) # 默认情况下validate_username会验证用户名是否正确,验证的规则写在函数中 def validate_username(self, field): # field.data==username表单提交的内容 u = User.query.filter_by(username=field.data).first() if u: raise ValidationError('用户名%s已经注册' % (u.username)) # username 数据库中所存数据 def validate_email(self, field): u = User.query.filter_by(email=field.data).first() if u: raise ValidationError('邮箱%s已经注册' % (u.email)) # 登录表单 class LoginForm(FlaskForm): username = StringField( label='用户名', validators=[ DataRequired(), ] ) password = PasswordField( label='密码', validators=[ DataRequired(), ] ) sub
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。