一.flask项目小问题
1.Flask项目@app.route()传入多个参数
HTML中
<a href="/deletetag/{{ post }}/{{ tag }}"> delete </a>
app.py中
@app.route(‘/deletetag/<post>/<tag>’)
def DeleteTag(pst,tag):
2.在Flask项目中
请求方式是get和post
If request.method == ‘GET’:
action = request.args.get(‘action’,None)
if request.method == ‘POST’:
action = request.form.get(‘action’,None)
action = request.form[‘action’]
二.flask路由传入参数
@app.route('/user/<name>', methods=['GET',"POST"])
def user(name):
return "%s hello word!" % name
三.Flask项目连接mysql数据库(linux系统)
1.虚拟机安装mysql数据库(mysql和mardb是同一个类型)
命令一:yum install mysql 安装mysql
命令二:yum install mariadb-server 安装mardb
命令三:yum remove mariadb-server 卸载mardb
2.启动服务
systemctl start mariadb
3.输入指令
/usr/bin/mysql_secure_installation
会提示更新密码和用户、数据库、数据表
4.Flask项目导入pymysql模块
5.使用Navicat软件连接虚拟机mysql数据库,连接需要远程服务器IP和数据库用户名,密码
6.在Navicat中创建新的数据库
7.在Flask项目中连接mysql数据库,代码:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:centos@192.168.0.72:3306/databases'
root:数据库名称
centos:数据库密码
192.168.0.72:服务器IP
3306:数据库运行端口
databases:要连接的数据库名
8.连接成功
三.虚拟机环境配置Flask项目环境
(1). 安装git,python
yum install git python
(2)安装pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
Inspect get-pip.py for any malevolence. Then run the following:
python get-pip.py
(3)安装flask
pip install -r requirements.txt
四.python读取文本按行写入列表
def file():
# 根据机器人编号找到文件的路径
# bot_log = Bots.query.filter_by(user_id=session["user"]).first().log
# 根据绝对路径打开文件
# files = r"C:\Users\徐瀾\Desktop\工作\公司工作\公司项目\测试二\demo12\Logs\55.log"
# 获取相对路径
files = ".\\Logs\\55.log"
lines = []
# with open("C:\Users\徐瀾\Desktop\工作\公司工作\公司项目\测试二\demo12\Logs\55.log", "r", encoding="utf-8") as y:
a = 1
with open(files, "r", encoding="utf-8") as y:
for line in y:
lines.append(line)
for i in lines[:-10]:
print(i)
a += 1
print(a)
y.close()
五.flask框架操作mysql数据库
# 初始化数据库脚本
python manage.py db init
# 生成数据库迁移脚本
python manage.py db migrate
# 更新数据库
python manage.py db upgrade
# 如果在项目中有将socketio注册给app,需要先将app注释,先同步数据库,然后再打开
六.Flask小项目
1.服务端
# -*- coding:utf-8 -*-
# !flask/bin/python
from flask import Flask
from flask import request, jsonify
import json
app = Flask(__name__)
# 判读接口方式是get还是post
@app.route('/jk', methods=['GET', 'POST'])
def index():
# GET请求
if request.method == "GET":
return jsonify({'code': 0, 'error': 'null'})
# POST请求
if request.method == "POST":
# 返回POST中的参数
method = request.form['method']
uid = request.form['uid']
block = request.form['block']
level = request.form['level']
if method == 'action':
if int(block) == 0:
if int(level) == 1:
return jsonify({'code': 1, 'error': u'1免费会员,权限不足'})
else:
return jsonify({'code': 0, 'error': u'2收费会员,可以使用'})
else:
return jsonify({'code': 1, 'error': u'3当前用户被锁定或参数错误'})
if method == 'access':
if int(block) == 0:
if int(level) == 1:
return jsonify({'code': 1, 'error': u'1免费会员,权限不足'})
else:
return jsonify({'code': 0, 'error': u'2收费会员,可以使用'})
else:
return jsonify({'code': 1, 'error': u'3当前用户被锁定或参数错误'})
if method == 'none':
if int(block) == 0:
if int(level) == 1:
return jsonify({'code': 1, 'error': u'1免费会员,权限不足'})
else:
return jsonify({'code': 0, 'error': u'2收费会员,可以使用'})
else:
return jsonify({'code': 1, 'error': u'3当前用户被锁定或参数错误'})
if method == 'logout':
if int(block) == 0:
if int(level) == 1:
return jsonify({'code': 1, 'error': u'1免费会员,权限不足'})
else:
return jsonify({'code': 0, 'error': u'2收费会员,可以使用'})
else:
return jsonify({'code': 1, 'error': u'3当前用户被锁定或参数错误'})
return jsonify({'code': 1, "error": u"访问数据错误"})
if __name__ == '__main__':
app.run(debug=True)
2.客户端
# -*- coding:utf-8 -*-
import requests
import json
# 定义api函数
def api(uid, locked,level):
# 定义传入的参数
d = {
'uid': uid,
'locked': locked,
'level': level,
}
# 定义返回的数据,使用通过url地址发起请求的方式
return requests.post('http://192.168.0.72:5000', data=d).text
if __name__ == '__main__':
# 调用api函数
print(api(123, 0,2))
网友评论