美文网首页
Flask框架问题总结

Flask框架问题总结

作者: sunshaoping | 来源:发表于2018-08-03 18:06 被阅读0次

一.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))

相关文章

  • Flask框架问题总结

    一.flask项目小问题1.Flask项目@app.route()传入多个参数HTML中 2.在Flask项目中请...

  • 使用flask采坑之道总结

    使用flask采坑之道总结(刚开始使用这个框架,遇见的问题在总结之中) 数据保存 最近在使用flask开发的过程之...

  • python四种web框架总结以及MySQL优化

    一、总结一下四种常用的web框架:Django,Flask,Tornado,Bottle 1.MVC: 总结框架之...

  • Flask框架——Sijax

    上篇文章我们学习了Flask框架——Flask-SQLite数据库,这篇文章我们学习Flask框架——Flask-...

  • Python总结-----Flask框架

    对比 Flask与Django对比 首先要从两个框架特点对比开始 Django: django-admin 可以...

  • flask框架基础总结

    一,HTTP协议 HTTPS协议 不同 为什么安全? (1)http协议是一种网络哟传输协议,规定了浏览器和服务器...

  • python flask安装和命令

    Flask Web开发实战学习笔记 Flask简介 Flask是使用Python编写的Web微框架。Web框架可以...

  • Flask问题总结

    问题3: 使用蓝图代码代码结构化,运行manager.py导致出现"page not found" 原因:这个问题...

  • flask框架入门级基础

    摘要 flask框架是一个微框架,即:微框架中的“微”意味着 Flask 旨在保持核心简单而易于扩展。Flask ...

  • Flask框架——flask-caching缓存

    上篇文章我们学习了Flask框架——Session与Cookie,这篇文章我们来学习Flask框架——flask-...

网友评论

      本文标题:Flask框架问题总结

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