安装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可