安装Flask
1. 使用pip安装Flask:在命令行中输入“pip install Flask”,等待安装完成即可。
2. 使用easy_install安装Flask:在命令行中输入“easy_install Flask”,等待安装完成即可。
配置Flask环境
1. 创建一个文件夹,用于存放Flask的应用,如“FlaskApp”。
2. 在FlaskApp文件夹中创建一个名为app.py的文件,用于编写Flask的应用程序。
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
3. 在FlaskApp文件夹中创建一个名为config.py的文件,用于配置Flask的应用程序。
import os class Config(object): SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
4. 在FlaskApp文件夹中创建一个名为templates的文件夹,用于存放模板文件。
5. 在FlaskApp文件夹中创建一个名为static的文件夹,用于存放静态文件,如css、js、图片等。
运行Flask应用
1. 在命令行中进入FlaskApp文件夹,输入“python app.py”,即可启动Flask应用,缺省端口为5000。
2. 在浏览器中输入“localhost:5000”,即可访问Flask应用,显示“Hello World!”。
Flask应用的扩展
1. 使用Flask-Script扩展:Flask-Script可以添加自定义的命令行参数,以方便管理Flask应用。
from flask_script import Manager app = Flask(__name__) manager = Manager(app) @manager.command def hello(): print('Hello World!') if __name__ == '__main__': manager.run()
2. 使用Flask-SQLAlchemy扩展:Flask-SQLAlchemy可以使用SQLAlchemy操作数据库,方便快捷。
from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True) email = db.Column(db.String(120), unique=True) db.create_all()
3. 使用Flask-Bootstrap扩展:Flask-Bootstrap可以快速构建基于Bootstrap的前端页面,提高开发效率。
from flask_bootstrap import Bootstrap app = Flask(__name__) Bootstrap(app) @app.route('/') def index(): return render_template('index.html')
4. 使用Flask-WTF扩展:Flask-WTF可以快速构建表单,并且可以验证表单数据的有效性。
from flask_wtf import FlaskForm from wtforms import StringField, SubmitField class NameForm(FlaskForm): name = StringField('What is your name?') submit = SubmitField('Submit')
5. 使用Flask-Login扩展:Flask-Login可以实现用户登录、登出、会话管理等功能,提供完善的安全机制。
from flask_login import LoginManager app = Flask(__name__) login_manager = LoginManager(app) @login_manager.user_loader def load_user(user_id): return User.get(user_id)
6. 使用Flask-Mail扩展:Flask-Mail可以发送邮件,以便实现注册、找回密码等功能。
from flask_mail import Mail app = Flask(__name__) app.config['MAIL_SERVER'] = 'smtp.example.com' app.config['MAIL_PORT'] = 465 app.config['MAIL_USE_SSL'] = True app.config['MAIL_USERNAME'] = 'username' app.config['MAIL_PASSWORD'] = 'password' mail = Mail(app) @app.route('/') def index(): msg = Message('Hello', sender='sender@example.com', recipients=['recipient@example.com']) msg.body = 'This is a test email sent by Flask-Mail.' mail.send(msg) return 'Email sent!'
7. 使用Flask-Restful扩展:Flask-Restful可以快速构建RESTful API,以便实现前后端分离。
from flask_restful import Api app = Flask(__name__) api = Api(app) class HelloWorld(Resource): def get(self): return {'hello': 'world'} api.add_resource(HelloWorld, '/')
8. 使用Flask-Migrate扩展:Flask-Migrate可