Python之Flask 小记

软件版本:

Python 3.7.3

Flask 1.1.1

SQLAlchemy 2.4.1

工具:

PyCharm

 

# Flask一些初始化
# 引包
from flask import Flask

app = Flask(__name__)

# 初始化数据库连接
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@127.0.0.1:3306/auto'
# 自动提交
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
# 跟踪修改
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
# 查询时显示SQL语句
app.config['SQLALCHEMY_ECHO'] = True

 

# 初始化SQLAlchemy
# 引包
from flask_sqlalchemy import SQLAlchemy

# 创建db对象
db = SQLAlchemy()

# 初始化db
db.init_app(app)

 

#### 修改启动端口 IP ####
# 刚开始使用这种方案,发现行不通,网上查阅资料后发现有人说是 PyCharm问题

app.run(host="127.0.0.1",port=6000)

# 解决方案
# 编辑 Configurations 里的 Additional options
# 增加
 --host=192.168.80.234 --port=6000 

 

# 普通请求
@app.route('/testDemo',methods=['GET','POST'])
def testDemo():
    # Get方式获取参数
    id = request.args.get('id')
    # Post方式获取参数
    ip = request.form.get('ip')


# 图片上传
@app.route('/fileUpload', methods=['POST','GET'])
def fileUpload():
    # 获取文件流
    fileList = request.files
    # 判断是否有文件
    if len(fileList) >0:
        file = fileList.get('file')
        path = '/static/py/'+file.filename
        f = open("."+path,'wb')
        data = file.read()
        f.write(data)
        f.close()
        return path
    return ""

 

 

# 引入json包
import json

# 格式化返回
def returnBaseJson(data=None, totalCount='0',success='success'):
    if data is None:
        data = []

    return json.dumps(
        {
            'totalCount':totalCount,
            'success': success,
            'resource': data
        },
        cls=MyEncoder,
        default=str)

#
# 编码类
#
class MyEncoder(json.JSONEncoder):

    def default(self, obj):
        if isinstance(obj, bytes):
            return str(obj, encoding='utf-8')
        return json.JSONEncoder.default(self, obj)


###### 数据库交互 ####
class Config(db.Model):
    # 表名
    __tablename__ = 'config'
    # 定义列对象
    id = dbs.db.Column(db.Integer, primary_key=True)  # id
    name = dbs.db.Column(db.VARCHAR)  # 设备唯一标识符
    
    # 后面转json用的,不然会有小坑
    def toString(self):
        return {
            "id": self.id,
            'name': self.name,
        }


# 查询操作
def getConfigList():
    # 做查询操作
    config = Config.query.all()
    # 格式化
    ds = [bean.toString() for bean in config]
    # 返回固定格式
    return http.returnBaseJson(ds)
    # {"totalCount": "0", "success": "success", "resource": [{"id": 1, "name": "11111"}, {"id": 2, "name": "222222"}]}



# 普通查询
config = Config.query.all()
# 条件查询
config = Config.query.filter(Config.id == 2).all()
# 条件删除
Config.query.filter(Config.id == 2).delete()
# 修改
config = Config.query.filter(Config.id == 2).all()
if len(config) > 0:
    count[0].name = "999"
# 插入
config = Config(name="56")
db.session.add(config)
db.session.commit()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值