注:基于python2.x的参考手册
from flask import Flask
app = Flask(__name__)
app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run(host='0.0.0.0')
# methods限制请求方法
@app.route('/upload', methods=['GET', 'POST'])
# <val>路径变量 方法中直接使用uid变量
@app.route('/user/<uid>')
# <int:val> 指定类型
@app.route('/user/<int:uid>')
# request对象
from flask import Flask,request,session
import json
@app.route('/',methods=['POST','GET'])
def app():
# 获取请求头
ct = request.headers.get('Content-Type')
# 获取cookie
cookie = request.cookies.get('somekey')
# 获取get请求参数
getvalue = request.args.to_dict().get('somekey')
# 获取post表单参数
formvalue = request.form.to_dict().get('somekey')
# 获取json参数
jsonstring = request.data
json = json.loads(jsonstring).get('somekey')
# 获取/修改Session
uid = session["uid"]
session['uid'] = 10
from flask import Flask,url_for,render_template,json,jsonify
import json
@app.route('/',methods=['POST','GET'])
def app():
# 返回字符串 return 'str'
# 返回重定向 return redirect(url_for('login'))
# 返回视图 return render_template('hello.html',age=1)
# 返回json return Response(json.dumps(dic), mimetype='application/json')
# 返回json return jsonify(dic)
# 修改状态码 return xxx,404 xxx为上面任意形式
# 修改header return xxx,200,{key:value} 第三个参数即为header
from flask import Flask,abort
import json
#注意跳转到错误页后返回码是200而非401
@app.route('/',methods=['POST','GET'])
def app():
abort(401)
@app.errorhandler(401)
def handle401(error):
return '401错误'
import MySQLdb
# 打开数据库连接
db = MySQLdb.connect("localhost","root","","test" )
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取一条数据
data = cursor.fetchone()
print "Database version : %s " % data
# 关闭数据库连接
db.close()
import MySQLdb
db = MySQLdb.connect("localhost","root","","test" )
cursor = db.cursor()
# 增删改都是这么操作
sql="insert into money(userid,money) values('asdfdsafads',1.34)"
try:
cursor.execute(sql)
db.commit()
except:
db.rollback()
db.close()
import MySQLdb
db = MySQLdb.connect("localhost","root","","test" )
cursor = db.cursor()
sql="select * from money"
try:
cursor.execute(sql)
res = cursor.fetchall()
for row in res:
print("%s,%s" % (row[0],row[1]))
except:
db.rollback()
db.close()
在Controller中介绍了返回视图的方式,和如何传递数据到视图,视图本身是html文件,如果没有数据展示则是纯html文件。
模板文件位置app.py
的同级目录下的/templates
中
静态文件位置app.py
的同级目录下的/static
中
静态资源可以直接通过/static/xxx
来访问
用{% %}
来写python代码,用{{ }}
直接展示数据
{% for entry in entries %}
<li><h2>{{ entry.title }}</h2>{{ entry.text|safe }}