目录
第一讲:修饰器、路由、端口
-
- 什么是 flask
-
- 修饰器、路由规则
-
- flask 变量规则,灵活传参数据类型:str、int、float(正浮点数,传int会报错)、path、uuid
-
- app.run(host='0.0.0.0') 中设置 host='0.0.0.0' ,让所有可以访问到本机 ip 的都可以使用。
-
- app.run(host='0.0.0.0',port=2333) ,通过 port 参数可以指定端口号
第二讲:Flask 重定向
-
- URL 重定向:总结一句话就是,在 app()中写路由的时候,末尾不加 /
- 防止:代码中没有,网页中末尾有 / 的时候,会报错。
-
- Falsk HTTP 方法:get(查)、post(增)、put(改)、delete(删)
-
- 重定向:在访问期望网址的时候,跳转到了另外一个网站。
第三讲:POST尝试,并写json返回(jsonify)
-
- 尝试写 json 接口,并安装 Postman。
-
- Postman 一个模拟前端网页处理的软件。
第四讲:session(Cookies 不安全)
-
- Cookies 不安全
-
- Session 比 Cookies 安全,需要设置登录密钥
- app.secret_key = 'asasasasasasa' # session 的加密
- session['username'] = username # session 缓存内容
- username = session.get("username") # 获取已经缓存的内容
- session.clear() # 清除 session 缓存
-
- username = get_data.get('username') ### 是 小括号,对应某一个方法,不是 字典 的 中括号
第一讲
python
复制代码
### 安装: pip install flask
'''
第一讲:
1. 什么是 flask
2. 修饰器、路由规则
3. flask 变量规则,灵活传参数据类型:str、int、float(正浮点数,传int会报错)、path、uuid
4. app.run(host='0.0.0.0') 中设置 host='0.0.0.0' ,让所有可以访问到本机 ip 的都可以使用。
'''
from flask import Flask
app = Flask(__name__)
### @ 装饰器,以下一行内容为使用装饰器来处理路由
@app.route("/lyj") ### 路由,即 网址+端口号 的 / 之后添加对应的内容,才能够访问以下对应的程序
def hello_world():
return "hello world."
################# 路由规则
### 体验 127.0.0.1:5000/ 的 / 之后使用不同的内容
@app.route("/hey") ### 路由,即 网址+端口号 的 / 之后添加对应的内容,才能够访问以下对应的程序
def hey_music():
return "hey 永杰."
### 灵活传参: str
@app.route("/get_str/<temp_str>") ### <temp_name> 灵活传参的时候,默认为 字符串
def get_str(temp_str):
return "get_str {} ".format( temp_str + temp_str )
############# flask 变脸规则
### 灵活传参数据类型:str、int、float(正浮点数)、path、uuid
@app.route("/get_int/<int:temp_num>") ### 参数为 int 类型数据
def get_int(temp_num):
return "get_int {} ".format( temp_num + temp_num )
### 参数为 float 类型(正浮点数)数据。 500 不行,500.0 就可以
@app.route("/get_float/<float:temp_float>")
def get_float(temp_float):
return "get_float {} ".format( temp_float + temp_float )
@app.route("/get_path/<path:temp_path>") ### 参数为 path 类型数据, 类似于接收字符串
def get_path(temp_path):
return "get_path {} ".format( temp_path )
### 通过此行内容,进行执行程序
app.run(host='0.0.0.0',port=2333) ### host='0.0.0.0' 表示任何主机都可以访问,不加的话 只有本机能够访问
第二讲:Flask 的重定向
python
复制代码
'''
第二讲:
1. URL 重定向:总结一句话就是,在 app()中写路由的时候,末尾不加 /
防止:代码中没有,网页中末尾有 / 的时候,会报错。
2. Falsk HTTP 方法:get(查)、post(增)、put(改)、delete(删)
3. 重定向:在访问期望网址的时候,跳转到了另外一个网站。
'''
from flask import Flask, abort, redirect
app = Flask(__name__)
@app.route('/baidu') ### 跳转到 百度
def baidu():
return redirect("https://www.baidu.com")
@app.route('/bilibili') ### 跳转到 B 站
def bilibili():
return redirect("https://www.bilibili.com")
app.run(host='0.0.0.0')
第三讲:尝试写 json 接口,并安装 Postman。
python
复制代码
'''
尝试写 json 接口,并安装 Postman。
Postman 一个模拟前端网页处理的软件。
下载地址: https://www.postman.com
'''
from flask import request, jsonify,Flask
app = Flask(__name__)
@app.route('/test/first_post', methods=['POST'])
def first_post():
try:
my_json = request.get_json()
print(my_json)
name = my_json.get("name")
age = my_json.get("age")
if not all([name, age]):
return jsonify(msg="缺少参数")
age += 10
return jsonify(name=name, age=age) ### 使得结果,以 json 格式进行返回
except Exception as e:
return jsonify(msg="程序出错, 清查询输入是否正确 .")
app.run(host='0.0.0.0')
第四讲:session 会话
python
复制代码
'''
第四讲:
1. Cookies 不安全
2. Session 比 Cookies 安全,需要设置登录密钥
app.secret_key = 'asasasasasasa' # session 的加密
session['username'] = username # session 缓存内容
username = session.get("username") # 获取已经缓存的内容
session.clear() # 清除 session 缓存
3. username = get_data.get('username') ### 是 小括号,对应某一个方法,不是 字典 的 中括号
'''
from flask import Flask, request, jsonify, session
app = Flask(__name__)
app.secret_key = 'asasasasasasa' # session 的加密
### 登录
@app.route("/try/login", methods=['POST'])
def login():
'''
账户:username asd123
密码:password asdasd
Returns:
'''
get_data = request.get_json()
username = get_data.get('username') ### 是 小括号,对应某一个方法,不是 字典 的 中括号
password = get_data.get('password')
### 完整性检查
if not all([username, password]):
return jsonify(msg="参数不完整")
### 账户、密码,是否正确
if username=='asd123' and password=='asdasd':
# 如果登录验证通过,保存登录状态在 Session 中
session['username'] = username
return jsonify(msg="登录成功")
else:
return jsonify(msg="用户名或密码错误")
### 检查登录
@app.route("/session", methods=["GET"])
def check_session():
username = session.get("username")
if username is not None:
### 可以在此添加,操作数据库的代码
# 从数据库里,查询一些信息,比如: 头像、登记、金币数量
return jsonify(username=username, msg='当前登录账户 {}'.format(username))
else:
return jsonify(msg="出错了,暂无账户登录.")
### 退出登录
@app.route("/try/logout", methods=["GET"])
def logout():
session.clear()
return jsonify(msg="账号退出成功!")
app.run(host='0.0.0.0')