1、使用pymysql模块操做MYSQLhtml
导入pymysql模块: pip install pymysqljava
一、增删改python
import pymysql # 定义数据库链接信息 config = { 'host': 'localhost', 'port': 3306, 'user': 'root', 'password': '', 'database': 'python', 'charset': 'utf8' } # 获取链接 conn = pymysql.connect(**config) # 获取游标,至关于java中的Statement cursor = conn.cursor() # 执行sql sql = ''' insert into t_user (username,password,age,height) values (%s,%s,%s,%s) ''' num = cursor.execute(sql, ['alice', '123', 18, 175.2]) # 为占位符%s赋值 print(num) # 提交事务 conn.commit() # 关闭资源 cursor.close() conn.close()
二、查询mysql
# 获取游标,至关于java中的Statement cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 能够指定cursor的类型为字典,查询 结果为Dict类型 # 执行sql sql = ''' select id,username,password,age,height from t_user ''' cursor.execute(sql) # 获取查询结果 # print(cursor.fetchone()) # 每次读取一条,返回的是元组 # print(cursor.fetchmany(2)) # 获取多条 # print(cursor.fetchall()) # 获取全部 for u in cursor.fetchall(): print(u['username'], u['age'])
2、Flask使用sql
https://dormousehole.readthedocs.io/en/latest/ Flask中文手册地址数据库
导入Flask模块: pip install flaskjson
from flask import Flask # 建立一个app,即一个Flask应用 app = Flask(__name__) # 定义路由,相似于SpringMVC中的@RequestMapping @app.route('/') def hello_world(): return '<h1 style="color:red">Hello World</h1>' @app.route('/welcome') def welcome(): return 'welcome to flask' # 启动应用 port=8888 自定义端口号,debug=True 开启debug模式
if __name__ == '__main__': app.run(port=8888, debug=True)
# Get请求 @app.route('/test_get') def test_get(): a = request.args.get('a') # 若是网页打开时只传入参数a,未传入参数b时,b默认为666 b = request.args.get('b', default=666) print(a, b) return 'get' # Post请求 @app.route('/test_post', methods=['post', 'get']) # 默认只接收GET请求,经过methods指定接收的请求方式 def test_post(): a = request.form['a'] b = request.form['b'] print(a, b) return 'post'
@app.route('/load_form') def load_form(): return ''' <form action="upload" method="post" enctype="multipart/form-data"> file: <input type="file" name="file"> <input type="submit" value="上传"> </form> ''' @app.route('/upload', methods=['post']) def upload(): # 获取上传的文件 file = request.files['file'] # print(type(file)) # FileStorage类型 # print(file.filename, len(file.read()), file.content_type) # time.strftime('%Y%m%d%H%M%S')获得年月日时分秒值,str(random.randint(1, 100))获得一个1到100间的随机数 save_path = time.strftime('%Y%m%d%H%M%S') + str(random.randint(1, 100)) + file.filename file.save(save_path) return 'success'
from flask import Flask, request, redirect, jsonify
import time
import random
from flask import render_template
app = Flask(__name__)
# 响应html
@app.route('/test_html')
def test_html():
return '''
<h1>html</h1>
'''
# 重定向
@app.route('/test_redirect')
def test_redirect():
return redirect('/test_html')
# 响应json
@app.route('/test_json')
def test_json():
user = {'id': 1001, 'name': 'tom', 'age': 18, 'sex': 'male'}
return jsonify(user)
# 响应模板页
@app.route('/test_template')
def test_template():
return render_template('hello.html') # 指定模板文件名,默认在当前目录下的tempaltes中查找
if __name__ == '__main__':
app.run(debug=True)
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): name = 'tom' age = 81 users = [ {'id': 1001, 'name': 'tom', 'age': 18, 'sex': 'male'}, {'id': 1002, 'name': 'jack', 'age': 28, 'sex': 'female'}, {'id': 1003, 'name': 'alice', 'age': 38, 'sex': 'male'} ] return render_template('result.html', username=name, age=age, users=users) --result.html中部分代码--
<body> result.html <br> username:{{username}} <br> {% if age>60 %} 老年 {% elif age>30 %} 中年 {% elif age>18 %} 少年 {% else %} 童年 {% endif %} <br> <ul> {% for user in users %} <li>{{user.id}},{{user.name}},{{user.sex}}</li> {% endfor %} </ul> </body>
# 全局异常处理 出现404错误,自动跳转到自定义的404.html网页去 @app.errorhandler(404) def error_handler(e): print(e) return render_template('404.html')
https://dormousehole.readthedocs.io/en/latest/tutorial/views.htmlflask
使用蓝图前,全部代码放在一个py文件中。app
第一步:新建多个py文件,把同一对象的相关操做放到一个独立的py文件中,这些独立的py文件就是一个个蓝图;框架
第二步:在主程序的py文件中注册蓝图,创建主程序与这些独立的py文件的关联。
下方为主程序的py文件
from flask import Flask from py07_Flask框架.user_controller import user from py07_Flask框架.product_controller import product app = Flask(__name__) # 注册蓝图 app.register_blueprint(user) app.register_blueprint(product) if __name__ == '__main__': app.run(debug=True)
下方为两个蓝图(py文件):user_controller.py和product_controller.py
#product_controller.py文件内容 from flask import Blueprint product = Blueprint('product', __name__) @product.route('/product_list') def product_list(): return 'product_list' --------------------------------------------------------- #user_controller.py文件内容 from flask import Blueprint # 建立蓝图 user = Blueprint('user', __name__) # 定义蓝图路由 @user.route('/user_list') def user_list(): return 'user_list'