MySQL Proxy实现读写分离

工作图: MySQL Proxy有一项强大功能是实现“读写分离”,基本原理是让主数据库处理写方面事务,让从库处理SELECT查询。 Amoeba for MySQL是一款优秀的中间件软件,同样可以实现读写分离,负载均衡等功能,并且稳定性也高于MySQL Proxy,有兴趣的可以测试一下。 环境描述: 操作系统:CentOS6.3_x64 主服务器Master:192.168.0.202 从服务器Slave:192.168.0.203 调度服务器MySQL-Proxy:192.168.0.204
分类: 其他 发布时间: 01-01 22:56 阅读次数: 0

Python Flask,上传文件,request.files

demo.py(上传文件): # coding:utf-8 from flask import Flask, request # 导入request对象 app = Flask(__name__) @app.route("/upload", methods=["POST"]) def upload(): file_obj = request.files.get("pic") # "pic"对应前端表单name属性 if file_obj is None:
分类: 其他 发布时间: 01-01 22:55 阅读次数: 0

Python Flask,abort函数

demo.py(abort函数): # coding:utf-8 from flask import Flask, abort, Response app = Flask(__name__) @app.route("/login", methods=["GET"]) def login(): name = "" pwd = "" if name != "zhangsan" or pwd != "admin": # abort函数可以立即终止视图
分类: 其他 发布时间: 01-01 22:55 阅读次数: 0

Python Flask,捕获异常,捕获404错误,errorhandler(),自定义异常处理函数

demo.py(捕获异常,自定义异常处理函数): # coding:utf-8 from flask import Flask app = Flask(__name__) # 捕获404异常错误 @app.errorhandler(404) # 当发生404错误时,会被该路由匹配 def handle_404_error(err_msg): """自定义的异常处理函数""" # 这个函数的返回值就是前端用户看到的最终结果 (404错误页面) return u"
分类: 其他 发布时间: 01-01 22:55 阅读次数: 0

Python Flask,自定义响应信息,自定义状态码、响应头

demo.py(自定义响应信息): # coding:utf-8 from flask import Flask, make_response app = Flask(__name__) @app.route("/index") def index(): # 1 使用元组,返回自定义的响应信息 # 响应体 状态码 响应头 # return "index page", 400, [("Name", "pyton"), ("City
分类: 其他 发布时间: 01-01 22:54 阅读次数: 0

Python Flask,Json,返回Json数据,jsonify

demo.py(返回Json数据): # coding:utf-8 from flask import Flask, jsonify import json app = Flask(__name__) # 第一种方式:手动返回Json字符串 @app.route("/index") def index(): data = { "name": "python", "age": 24 } # json.dumps(字典) # 将
分类: 其他 发布时间: 01-01 22:54 阅读次数: 0

Python Flask,cookie,设置、获取、删除cookie

demo.py(设置、获取、删除cookie): # coding:utf-8 from flask import Flask, make_response, request app = Flask(__name__) # 设置cookie @app.route("/set_cookie") def set_cookie(): resp = make_response("success") # "success"是响应体 # 设置cookie, 默认有效期是临时co
分类: 其他 发布时间: 01-01 22:54 阅读次数: 0

Python Flask,session

demo.py(session): # coding:utf-8 from flask import Flask, session # 导入session app = Flask(__name__) # flask的session需要用到的秘钥字符串 (如果用到session 必须配置该项) app.config["SECRET_KEY"] = "Flask的秘钥字符串" # flask默认把session保存到了cookie中 (不安全,所以要配置SECRET_KEY) # 设
分类: 其他 发布时间: 01-01 22:54 阅读次数: 0

Python Flask,请求上下文,应用上下文

请求上下文(request context) request和session都属于请求上下文对象。 应用上下文(application context) current_app和g都属于应用上下文对象。 current_app:表示当前运行程序文件的程序实例。 g:处理请求时,用于临时存储对象,每次请求都会重设这个变量。 from flask import current_app, g
分类: 其他 发布时间: 01-01 22:53 阅读次数: 0

Python Flask,请求钩子(hook),(类似Django中间件)

请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子: before_first_request:在处理第一个请求前运行。 before_request:在每次请求前运行(视图函数执行前)。 after_request:如果没有未处理的异常抛出,在每次请求后运行(视图函数执行后)。 teardown_request:在每次请求后运行,即使有未处理的异常抛出。 demo.py(请求钩子): # coding:utf-8 from flask import Flask, reques
分类: 其他 发布时间: 01-01 22:53 阅读次数: 0

Python Flask,flask_script,扩展脚本,扩展命令行。命令行中启动Flask

安装flask_script包: pip install Flask-Script demo.py(flask_script): # coding:utf-8 from flask import Flask from flask_script import Manager # 启动命令的管理类 app = Flask(__name__) # 创建Manager管理类的对象 manager = Manager(app) @app.route("/index") def inde
分类: 其他 发布时间: 01-01 22:53 阅读次数: 0

Python Flask,模板,Jinja2模板,模板变量,过滤器

demo.py(模板变量,过滤器): # coding:utf-8 from flask import Flask, render_template # 导入render_template app = Flask(__name__) @app.route("/index") def index(): data = { "name": "python", "age": 18, "my_dict": {"city": "sz"}
分类: 其他 发布时间: 01-01 22:53 阅读次数: 0

Python Flask,Jinja2模板,自定义过滤器

demo.py(自定义过滤器): # coding:utf-8 from flask import Flask, render_template # 导入render_template app = Flask(__name__) @app.route("/index") def index(): my_list = [1, 2, 3, 4, 5] return render_template("index.html", my_list = my_list) #
分类: 其他 发布时间: 01-01 22:52 阅读次数: 0

Python Flask,Jinja2模板,控制语句,if、for

if语句 {% if %} {% else %} {% endif %} for语句 {% for item in samples %} {% endfor %}
分类: 其他 发布时间: 01-01 22:52 阅读次数: 0

Python Flask,Flask-WTF,表单验证,CSRF验证

使用Flask-WTF表单扩展,1、可以帮助进行CSRF验证。2、帮助我们快速定义表单模板。3、而且可以帮助我们在视图中验证表单的数据 安装Flask-WTF: pip install Flask-WTF demo.py(Flask-WTF,定义表单模型类,定义视图): # coding:utf-8 from flask import Flask, render_template, redirect, url_for, session from flask_wtf import Flask
分类: 其他 发布时间: 01-01 22:52 阅读次数: 0

Python Flask,Jinja2模板,宏,macro

宏类似于python中的函数,宏的作用就是在模板中重复利用代码,避免代码冗余(一次定义,多次使用)。 templates/index.html(模板,定义宏,使用宏): <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>宏</title> </head> <body> <!-- 定义宏(不带参数) --> {% macro input() %}
分类: 其他 发布时间: 01-01 22:52 阅读次数: 0

Python Flask,Jinja2模板,模板继承,模板包含

模板继承与Django中的模板继承一样。 参考:https://blog.csdn.net/houyanhua1/article/details/85004048 templates/base.html(模板,父模板): {% block top %} 顶部菜单(子模板可以使用父模板中的默认内容,也可以重写) {% endblock top %} {% block content %} {% endblock content %} {% block botto
分类: 其他 发布时间: 01-01 22:51 阅读次数: 0

Python Flask,Jinja2模板,模板中使用特殊变量及函数,闪现信息,get_flashed_messages()

在渲染模板时,不需要手动分配,可以直接在模板中使用的模板变量及函数:config、request、url_for()、get_flashed_messages() 在Flask中,有一些特殊的变量和方法是可以在模板文件中直接访问的。 config 对象: config 对象就是Flask的config对象,也就是 app.config 对象。 {{ config.SQLALCHEMY_DATABASE_URI }} request 对象: 就是 Flask 中表示当前请求的 reques
分类: 其他 发布时间: 01-01 22:51 阅读次数: 0

Python Flask,数据库,SQLAlchemy,模型类的定义,数据库添加

SQLAlchemy是一个ORM框架。flask-sqlalchemy是一个简化了SQLAlchemy操作的flask扩展。 安装flask-sqlalchemy: pip install flask-sqlalchemy 安装Mysql驱动: pip install MySQL-python # Python2中安装MySQL-python,Python3中安装 PyMySQL demo.py(模型类的定义,数据库的添加): # coding:utf-8 from flask impor
分类: 其他 发布时间: 01-01 22:51 阅读次数: 0

Python Flask,数据库,SQLAlchemy,数据库查询

数据库的增、删、改通过 db.session 的会话对象,数据库的查询一般通过 模型类名.query() (也可以通过session会话查询) demo.py(数据库查询): import User # 导入模型类 # 通过query查询 # 查询所有。 (User是模型类名) user_list = User.query.all() # 返回列表 # 查询第一个 user1 = User.query.first() # 返回模型类对象。 不存在返回None # 根据主键id查
分类: 其他 发布时间: 01-01 22:51 阅读次数: 0