首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flask:轻量级Web开发的Python利器!

Flask是个Python的迷你Web框架,小巧得只有一个核心但啥都能干。干Web开发的时候特别顺手,跟用瑞士军刀似的 - 小是小了点,但该有的功能一个不少。

搭个最基础的Flask应用贼简单。看我写几行代码:

from flask import Flask

app = Flask(__name__)

@app.route('/')

def hello():

return 'Hello, 我的第一个Flask应用!'

if __name__ == '__main__':

app.run()

这段代码运行起来,打开浏览器输入http://127.0.0.1:5000就能看到结果了。装饰器@app.route('/')告诉Flask这个网址该咋处理,/表示网站的根地址。

网站不可能就一个页面对吧?Flask用路由来处理不同的网址:

@app.route('/blog')

def blog():

return '这是我的博客页面'

@app.route('/user/<username>')

def show_user(username):

return f'你好啊,{username}!'

温馨提示:是个变量部分,访问/user/小明时,username就是“小明”

光返回字符串多没意思。Flask用Jinja2模板引擎来渲染漂亮的HTML页面:

from flask import render_template

@app.route('/welcome/<name>')

def welcome(name):

return render_template('welcome.html', user_name=name)

HTML模板长这样:

欢迎你,{{ user_name }}!

刷新新标签页

分享## 处理表单数据

Flask处理表单数据也贼简单:

from flask import request

@app.route('/login', methods=['GET', 'POST'])

def login():

if request.method == 'POST':

username = request.form['username']

password = request.form['password']

# 处理登录逻辑

return f'收到登录请求:{username}'

return render_template('login.html')

温馨提示:别忘了设置methods=['GET', 'POST'],不然表单提交时会报405错误

Flask本身不带数据库,但可以配合SQLAlchemy来搞定数据库操作:

from flask_sqlalchemy import SQLAlchemy

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'

db = SQLAlchemy(app)

class User(db.Model):

id = db.Column(db.Integer, primary_key=True)

项目大了就得用蓝图来组织代码,把不同功能的路由分开管理:

from flask import Blueprint

admin = Blueprint('admin', __name__)

@admin.route('/dashboard')

def dashboard():

return '这是管理后台'

# 主应用中注册蓝图

Flask上手特别快,配置少,想加功能就装对应的扩展。搞个小网站or写个API接口,Flask绝对是最佳选择。记住一点,Flask不是啥都帮你做好的全能框架,它就是个给你提供基础工具的工具箱,剩下的得自己动手。

开发时记得打开调试模式(app.run(debug=True)),不然改个代码还得重启烦死了。Flask的错误提示做得贼好,哪出问题一目了然。

坚持用Flask写几个小项目,慢慢就能体会到它的优雅之处。网站开发也可以玩得这么快乐,Flask就是这么让人着迷。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OWauNfgEe9MNPa80OWTvRL9Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券