前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask基础快速入门

Flask基础快速入门

作者头像
菲宇
发布2020-03-20 11:11:42
5990
发布2020-03-20 11:11:42
举报
文章被收录于专栏:菲宇菲宇

简介 Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。 flask中文文档 Jinja 文档 Werkzeug 文档 1、安装Flask

代码语言:javascript
复制
pip install Flask

2、最小的Flask 应用

为了测试 Flask 安装,请在编辑器中将以下代码输入 Hello.py:

代码语言:javascript
复制
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
   return 'Hello World’

if __name__ == '__main__':
   app.run()

运行上述程序,Python Hello.py

flask默认的是5000端口,在浏览器打开http://127.0.0.1:5000即可访问

外部可访问的服务器

代码语言:javascript
复制
app.run(host='0.0.0.0')​​​​​​​

调试模式

有两种途径来启用调试模式。一种是直接在应用对象上设置:

代码语言:javascript
复制
app.debug = True

app.run()

另一种是作为 run 方法的一个参数传入:

代码语言:javascript
复制
app.run(debug=True)

路由

代码语言:javascript
复制
from flask import Flask
 
app = Flask(__name__)
 
 
@app.route('/')
def index():
    return 'Index Page'
 
 
@app.route('/hello')
def hello():
    return 'Hello World'
 
 
if __name__ == '__main__':
    app.run()

路由变量规则

要给 URL 添加变量部分,可以把这些特殊的字段标记为 <variable_name> , 这个部分将会作为命名参数传递到你的函数。规则可以用 <converter:variable_name> 指定一个可选的转换器。

代码语言:javascript
复制
from flask import Flask
 
app = Flask(__name__)
 
 
@app.route('/user/<username>')
def show_user_profile(username):
    # show the user profile for that user
    return 'User %s' % username
 
 
@app.route('/post/<int:post_id>')
def show_post(post_id):
    # show the post with the given id, the id is an integer
    return 'Post %d' % post_id
 
 
if __name__ == '__main__':
    app.run()

转换器有下面几种:

int

接受整数

float

同 int ,但是接受浮点数

path

和默认的相似,但也接受斜线

静态文件

动态 web 应用也会需要静态文件,通常是 CSS 和 JavaScript 文件。理想状况下, 你已经配置好 Web 服务器来提供静态文件,但是在开发中,Flask 也可以做到。 只要在你的包中或是模块的所在目录中创建一个名为 static 的文件夹,在应用中使用 /static 即可访问。

给静态文件生成 URL ,使用特殊的 'static' 端点名:

代码语言:javascript
复制
url_for('static', filename='style.css')

这个文件应该存储在文件系统上的 static/style.css 。

模板渲染

用 Python 生成 HTML 十分无趣,而且相当繁琐,因为你必须手动对 HTML 做转义来保证应用的安全。为此,Flask 配备了 Jinja2 模板引擎。

你可以使用 render_template() 方法来渲染模板。你需要做的一切就是将模板名和你想作为关键字的参数传入模板的变量。这里有一个展示如何渲染模板的简例:

代码语言:javascript
复制
from flask import render_template
 
@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
    return render_template('hello.html', name=name)

Flask 会在 templates 文件夹里寻找模板。所以,如果你的应用是个模块,这个文件夹应该与模块同级;如果它是一个包,那么这个文件夹作为包的子目录:

情况 1: 模块:

代码语言:javascript
复制
/application.py
/templates
    /hello.html

情况 2: 包:

代码语言:javascript
复制
/application
    /__init__.py
    /templates
        /hello.html

关于模板,你可以发挥 Jinja2 模板的全部实例。更多信息请见 Jinja2 模板文档 。

模板实例:

代码语言:javascript
复制
<!doctype html>
<title>Hello from Flask</title>
{% if name %}
  <h1>Hello {{ name }}!</h1>
{% else %}
  <h1>Hello World!</h1>
{% endif %} 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 路由变量规则
  • 静态文件
  • 模板渲染
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档