前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >day114-Flask启动&Response内容&Request内容&模板语言

day114-Flask启动&Response内容&Request内容&模板语言

原创
作者头像
少年包青菜
修改2020-04-20 18:03:35
4910
修改2020-04-20 18:03:35
举报
文章被收录于专栏:Python 学习Python 学习

1.Flask启动(启动即运行)

代码语言:javascript
复制
from flask import Flask

# 指定一个 app
app = Flask(__name__)


@app.route('/')  # 指定路径
def hello_world():
    # 返回一个字符串 
    return 'Hello World '


if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=9527)

2.Flask的基础response

2.1 return 一个字符串

代码语言:javascript
复制
from flask import Flask
    
@app.route('/')  # 指定路径
def hello_world():
    # 返回一个字符串 
    return 'Hello World '
    

if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=9527) 

2.2 render_template(),返回一个网页

代码语言:javascript
复制
from flask import Flask, render_template

app = Flask(__name__)
    
@app.route('/login', methods=['GET', 'POST'])  # 指定 methods,只有固定的请求可以访问
def login():
    if request.method == 'POST':
        # 用户提交的表单数据
        user_info = request.form
        print(user_info)

    return render_template('login.html')
    

if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=9527)

2.3 redirect(),进行一个重定向

代码语言:javascript
复制
from flask import Flask, redirect

app = Flask(__name__)
    
@app.route('/redirect')
def red():
    # 自动跳转到 login
    return redirect('/login')
    

if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=9527)

2.4 sonify(),返回一个json串

代码语言:javascript
复制
from flask import Flask, jsonify

app = Flask(__name__)
    
@app.route('/json')
def json_test():
    # 返回一个 json 类型数据串
    return jsonify({'name': 'leon', 'age': 28})
    

if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=9527)

2.5 send_file(),返回一个文件

代码语言:javascript
复制
from flask import Flask, send_file

app = Flask(__name__)
    
@app.route('/file')
def file():
    # 文件可以是视频文件,GIF都可以
    return send_file('1.png')
    

if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=9527)

3.request的基本内容

代码语言:javascript
复制
from flask import Flask

app = Flask(__name__)
    
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        # 用户提交的表单数据
        user_info = request.form
        print(user_info)

    return render_template('login.html')
    

if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=9527)
代码语言:javascript
复制
from flask import request

request.method 				# 请求方式
request.form 				# 用户提交的 form 表单数据
request.args 				# URL中的所有数据 ?name=xx&age=xx
request.json 				# 存在 json 数据串
request.data 				# 当Content-Type无法被解析时,存放原始数据
request.url					# 完整的请求地址
request.path 				# url  path
request.host 				# 主机 地址
request.host_url 			# 将主机地址转换为httpurl

4.如同Django,JInja2支持模板渲染数据

4.1视图

代码语言:javascript
复制
from flask import Flask

app = Flask(__name__)
    
@app.route('/for')
def for_test():
    student_info = {
        'class_1': {'name': 'Leon', 'age': 38, 'gender': '男'},
        'class_2': {'name': 'Luis', 'age': 73, 'gender': '女'},
        'class_3': {'name': 'Brown', 'age': 84, 'gender': '男'},
        'class_4': {'name': 'White', 'age': 26, 'gender': '不详'},
    }
    return render_template('for_loop.html', student_info=student_info)
    

if __name__ == '__main__':
    app.run(debug=True, host="0.0.0.0", port=9527)

4.2HTML中,{% for %}、{% if %}、{{ xxx }}

代码语言:javascript
复制
<thead>
<tr>
    <th style="padding: 0 30px">班级</th>
    <th>姓名</th>
    <th>年纪</th>
    <th>性别</th>
</tr>
</thead>
<tbody style="border: black solid 1px">

{% for class,student in student_info.items() %}
    <tr>
        <td>{{ class }}</td>
        <td>{{ student.name }}</td>
        <td>{{ student.age }}</td>
        {% if student.gender == '不详' %}
            <td>性别不详</td>
        {% elif student.gender == '其他' %}
            <td>没有性别</td>
        {% else %}
            <td>{{ student.gender }}</td>
        {% endif %}
    </tr>
{% endfor %}

</tbody>
</table>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.Flask启动(启动即运行)
  • 2.Flask的基础response
    • 2.1 return 一个字符串
      • 2.2 render_template(),返回一个网页
        • 2.3 redirect(),进行一个重定向
          • 2.4 sonify(),返回一个json串
            • 2.5 send_file(),返回一个文件
            • 3.request的基本内容
            • 4.如同Django,JInja2支持模板渲染数据
              • 4.1视图
                • 4.2HTML中,{% for %}、{% if %}、{{ xxx }}
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档