当前位置: 首页 > article >正文

Flask之Hello world 详解

**Flask之Hello world 详解
========================**
以下讲解假设你对python有基本了解,熟悉wsgi,以及了解某种python web framework.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return "HELLO WROLD"

if __name__ == '__main__':
    app.run(debug=True)
  1. Flask的实例app就是我们的WSGI application.
  2. 创建Flask实例需要指定一个参数,这个参数一般是application的模块名字或者是包名.Flask根据这个参数定位templates,static files等.
  3. route装饰器告诉Flask什么样的请求路径对应这个函数

####Routing
route()装饰器支持变量规则,用<variable_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

@app.route('/user/<path:location>')
def show_path(location):
    return location

有三种转换器:

int	    accepts integers
float	like int but for floating point values
path	like the default but also accepts slashes

####HTTP METHOD

from flask import request

@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == "POST":
        return 'post'
    else:
        return 'get'

####Static Files
在package或则module同目录下创建static目录

url_for('static', filename='style.css')

####rendering templates
默认Flask配置JinJia2作为模板引擎,因为他们是一家的.Flask会在templates目录下查找模板文件,如果application是一个module,那么这个templates目录与application同级目录.如果他是一个package:

  • case 1: a module:

    /application.py
    /templates
    /hello.html

  • case 2: a application

    /application
    /init.py
    /templates
    /hello.html

渲染模板使用render_template()

from flask import render_template
@app.route('/hello/')
@app.route('/hello/<name>')
def hello(name=None):
    return render_template('hello.html',name=name)

JinJia2 模板的语法和Mako以及django的语法都差不多,可以稍作了解

<!doctype html>
<title>Hello from Flask</title>
{% if name %}
  <h1>Hello {{ name }}!</h1>
{% else %}
  <h1>Hello World!</h1>
{% endif %}

####Context locals
先跳过


http://www.kler.cn/a/287256.html

相关文章:

  • 优化 MFC CGridCtrl 的表格布局与功能
  • 机器学习day7-线性回归3、逻辑回归、聚类、SVC
  • HCIP --OSI七层参考模型回顾、TCP/UDP协议复习
  • 如何通过统计来反映工业新产业发展情况
  • IDEA 开发工具常用快捷键有哪些?
  • K8s 一键部署 MongoDB 的 Replica-Set 和 MongoDB-Express
  • 【补-办公室】拟批语的区别
  • 重构贪心算法(二)
  • 12大常用自动化测试工具,请记得转发收藏!
  • Leetcode 3277. Maximum XOR Score Subarray Queries
  • PostgreSQL LIMIT 子句的使用与优化
  • Jenkins版本升级
  • 米家“智能中枢网关”和“智能多模网关”有什么区别?
  • 快速回顾-HTML5
  • 前端宝典二十一:前端异步编程规范手写Promise、async、await
  • 01.项目初始化
  • 解决yum不能正常使用,报错: No module named yum,如何安装python2和python3并行版本,搭建自动化环境
  • 【Python机器学习】NLP词中的数学——向量化
  • 驭势科技研究成果入选学术顶会IROS 2024
  • LuaJit分析(十)luajit自定义修改
  • 如何使用GPT画出带中文的图和表?-已解决GPT画图表出现乱码的问题
  • 优先级队列面试题详解
  • link标签的用途
  • 微软 Maia 100 酷炫登场,强势叫板英伟达!
  • 找出成员满足条件的整个分组
  • el-dropdown不能自己在每一项添加方法,控制台会报错