flask入门
安装包:pip install flask
一、认识flask
1、在pycharm新建工程myflask
2、在myflask工程下面创建myapp文件夹和文件myfirstapp.py
3、在myaap文件下的__init__.py文件输入如下代码
from flask import Flask #创建app应用,__name__是python预定义变量,被设置为使用本模块. app = Flask(__name__) #这里的引用会在第四步创建 from myapp import routes
4、在myapp文件下新建routes.py并输入如下代码
from myapp import app from flask import render_template #建立路由,通过路由可以执行其覆盖的方法,可以多个路由指向同一个方法。 @app.route('/') @app.route('/index') def index(): user = {'username': 'duke'} posts = [ { 'author': {'username': '张三'}, 'body': '今天天气真好' }, { 'author': {'username': '李四'}, 'body': '是的' } ] # 将需要展示的数据传递给模板进行显示 return render_template('index.html', title='我的', user=user,posts=posts)
5、在app文件下新建templates文件夹,第四步使用的html是从该文件夹获取的
新建base.html
<!DOCTYPE html> <html > <head> <meta charset="UTF-8"> {% if title %} <title>{{ title }} - 博客</title> {% else %} <title>欢迎来到博客!</title> {% endif %} </head> <body> <div>博客 : <a href="/index">首页</a></div> {% block content %} {% endblock %} </body> </html>
新建index.html
{% extends 'base.html' %} {% block content %} <h1>你好呀, {{ user.username }} !</h1> {% for post in posts %} <div><p>{{ post.author.username }} 说:<b>{{ post.body }}</b></p></div> {% endfor %} {% endblock %}
6、在myflask工程下面的myfirstflask.py输入如下代码
from myapp import app #防止被引用后执行,只有在当前模块中才可以使用 if __name__=='__main__': app.run()
7、运行步骤6的代码,这样一个简单的app就运行起来了
或者在命令窗口运行:python myfirstflask.py
二、跨域和蓝图
jsonify在dumps函数(dict转换为str)上做了封装,变得更易用;
from flask import request, jsonify from flask_cors import * from common import server, logging from common.common_api import common # 允许跨域 CORS(app=server, supports_credentials=True) # 注册蓝图 server.register_blueprint(common) @server.route('/user/login/', methods=['post']) def login(): rq = request.get_json(force=True) logging.info(f"flask服务,请求参数是:{rq}") if request.method == 'POST': data = request.get_json() if data.get('username') == 'whitewall' and data.get('password') == '123456': return jsonify({'token': '你敢相信这是一个token?', 'msg': '登录成功'}) else: return jsonify({'msg': '账号密码错误'}) if __name__ == '__main__': server.run(host="0.0.0.0", port=3333, debug=True)
common_api.py文件
from flask import request, Blueprint, jsonify common = Blueprint("这里只是个描述", __name__) @common.route('/test', methods=['post']) def test(): '''blueprint测试''' rq = request.get_json(force=True) return jsonify({'msg': '账号密码错误'})
一个只会点点点的测试,有疑问可以在测试群(群号:330405140)问我

浙公网安备 33010602011771号