美文网首页
flask简单应用

flask简单应用

作者: 山高路远_海深不蓝 | 来源:发表于2018-11-12 21:10 被阅读0次

flask_basic

  • 文件目录结构(非快速创建的flask项目)
    image.png

static: 类似django应用中的静态文件,用于存放一些资源文件,如css和js文件
templates: 存放网页模板文件
hello.py,urls.py,views.py都是自命名的功能文件,
其中urls.py的起名类似Django的urls.py(路由)文件,views.py类似Django的views.py功能函数文件.

start起步

创建一个简单的应用

  • 1.hello.py文件
from flask import Flask

# 创建并返回一个WSGI应用程序对象
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'hello world!'

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

app.route通过装饰器设置服务器对应的路由('/'代表根路由)
flask中路由分为动态和静态两种,静态路由即路径是一种固定格式,动态路由则可以根据用户的输入自动进行切换.

  • 2.运行hello.py文件,打开浏览器输入终端显示的IP地址
    image.png
  • 3.静态路由
@app.route('/add/')
def add_infor():
    return '用户信息添加成功'

@app.route('/show')
def show_infor():
    return '用户信息查询成功'

静态路由有两种,一种是右边带有'/',一种不带,带'/'的路由可以保证用户在访问时忘记添加'/'时,服务器自动进行服务器的接收.第二种路由用户在访问时绝对不能在对应的位置添加'/'

  • 4.动态路由(urls.py)
from flask import Flask,  request
from views import *

app = Flask(__name__)

@app.route('/<name>/')
def path_set(name):
    if name == 'login':
        return show_login(request)
    elif name == 'regist':
        return show_regist(request)

if __name__ == '__main__':
    app.run('127.0.0.1', '8000', debug=True)

name为网页地址的根路由后的下级路由例如http://127.0.0.1:8000/login,name为login
如果需要限制name的类型可以使用<int:name>等,但注意整形不能直接return

  • 5.渲染网页(views.py)
from flask import  url_for, render_template

def show_login(request):
    return render_template('login.html', css_path=url_for('static', filename='css/login.css'))

def show_regist(request):
    return render_template('regist.html',css_path=url_for('static', filename='css/login.css'))

render_template类似Django的render,参数request为前端请求参数,
login.html为待渲染的网页模板,css_path为给前端返回的一个路由,前端可以直接通过{{css_path}}访问

  • 6.前端引用后台返回的路由(login.html)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
    <link rel="stylesheet" href="{{css_path}}">
</head>
<body>
    <form action="" method="post">
        <div>
            用户名: <input type="text" name="user">
        </div>
        <div>
            <span style="letter-spacing: 1em">密</span>码:
            <input type="password" name="passw">
        </div>
        <div>
            <input type="submit" value="登录">
        </div>
        <div>
            <a href="" target="_blank">新用户注册</a>
        </div>
    </form>
</body>
</html>
  • 7.指定请求方式
@app.route('/post_test/', methods=['POST'])
def get_post():
    '''
    request: 用来存储对应的请求对象,其中methods属性获取本次请求的请求方式,values获取本次请求前端向后台
    传输的数据,values对应的是一个字典类型的数据,可以通过key来获取指定的前端内容
    '''
    if request.method == 'POST':
        print(request.values)
        for key,value in request.values.items():
            print(key, value)
        # 对于POST来说args没有作用
        # print(request.args.get('name'))
        print(request.values.get('name'))
        # full_path显示全路径(包含参数)
        return request.path
    else:
        return 'error'

methods: 设置当前路由能够支持的请求方式,默认情况下只支持get.

Tip:

前端指定form表单的请求方式为post后,请求函数必须加上methods的post方式.

相关文章

  • flask简单应用

    flask_basic 文件目录结构(非快速创建的flask项目)image.png static: 类似djan...

  • flask

    一. 简单应用 1. 安装flask 2. 一个简单的应用 保存为hello.py(文件名不能是flask.py,...

  • 在阿里云部署 Flask 应用

    原文首发于CSDN,略有增删 在阿里云部署 Flask 应用 本文简单记录在阿里云部署 Flask 应用的过程。由...

  • flask简单应用(2)

    一、母板include和extend二、jinjia2模板语法三、使用session四、使用flask_sessi...

  • flask简单应用(3)

    一、endpoint,路由命名二、url_for,反向解析三、send_file,打开文件并返回四、jsonify...

  • flask简单应用(4)

    一、初始化配置二、app实例的配置三、before_request、after_request、errorhand...

  • flask简单应用(1)

    一、 基本结构二、另一种注册路由的方式三、三种返回方式四、设置请求方式五、request中的数据 一、 flask...

  • Python--Flask 开发Android API接口

    1. Flask介绍 Flask是一个使用 Python 编写的轻量级 Web 应用框架,使用简单操作方便,很适合...

  • 《Flask Web开发》笔记——第二章 程序的基本结构

    1. 一个简单的Flask程序 一个最简单的flask应用看起来如下,这个程序命名为hello.py: 对于这个应...

  • 001 Flask入门

    一个简单的Flask项目 程序解析 首先,我们导入了Flask类。这个类的实例将会是我们的WSGI 应用程序 接下...

网友评论

      本文标题:flask简单应用

      本文链接:https://www.haomeiwen.com/subject/hozjxqtx.html