一般模板
from flask import Flask,render_template
# from flask_script import Manager # 使用命令行启动时导入
app = Flask(__name__)
# manage = Manager(app)# 使用命令行启动时用
"""
@app.route('/')
def index():
return render_template
"""
if __name__ == '__main__'
app.run(debug=True) # 日常测试用
# manage.run()
SQLAlchemy数据库demo
若要使用mysql数据库"""
- 设置URI
SQLALCHEMY_DATABASE_URI = ‘mysql://root:admin@127.0.0.1:3306/fk01’ - 下载pymysql
- 安装:
import pymysql
pymysql.install_as_MySQLdb()
“”"
from flask import Flask,render_template,redirect
import os
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
# 获取绝对路径
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
# wk/fk.sqlite
# 1.配置数据库连接
class Config(object):
# 连接数据库
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(BASE_DIR, 'fk1.sqlite')
# 设置sqlalchemy 自动更新
SQLALCHEMY_TRACK_MODIFICATIONS = True
SQLALCHEMY_COMMIT_ON_TEARDOWN = True
# 2. 读取Config 对象
app.config.from_object(Config)
# 3. 创建 对象
db = SQLAlchemy(app)
# 5. 创建模型类
class User(db.Model):
id = db.Colum(db.Integer,primary_key = True, autoincrement= True)
name = db.Colum(db.String(32),nullable=False)
def __repr__(self):
return '<obj name:{}>'.format(self.name)
@app.route('/login/',methods=['GET','POST'])
def login():
""""""
return render_template('login.html',**locals())
if __name__=='__main__'
db.drop_all()
db.create_all()
app.run()
传参
传递 return render_template('test.html',name='zs',age=18)
接收 {{name}} {{age}}
user_dir = {'name':'zs','age':18 }
传递 return render_template('test.html',**user_dir)
接收 {{name}} {{age}}
传递 return render_template('test.html',user_dir=user_dir)
接收 {{user_dir['name']}} {{user_dir.age}}
names = ['zss','lss']
传递 return render_template('test.html',names=names)
接收 {{names[0]}} {{names[1]}}
cookie和session使用
set_cookie()
response = make_response('set_cookie')
response.set_cookie('name','zs')
return response
get_cookie()
name = request.cookies.get('name')
detele_cookie()
response = make_response('delete')
response.detele_cookie('name')
return response
# 使用session
app.config['SECRET_KEY'] = '123' #加salt
set_session
session['name'] = 'zs'
get_session
name = sission.get('name')
delete_session
session.pop('name')
上传文件
@app.route('/upload/',methods=['GET','POST'])
def upload():
if request.methods == 'POST'
file_obj = request.files.get('picture')
picture_name = file_obj.filename # 图片名称
file_obj.save(picture_name)
return 'success'
return render_template('upload.html')
form表单注册
from flask import Flask, render_template, request
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, EqualTo
app = Flask(__name__)
app.config['SECRET_KEY'] = '123'
# 继承FlaskForm
class RegisterForm(FlaskForm):
name = StringField(label='用户名',validators=[DataRequired('必填!')])
password = PasswordField(label='密码',validators=[DataRequired('必填!')])
password2 = PasswordField(label='密码',validators=[DataRequired('必填!'),EqualTo('password2','两次密码不相同')])
submit = SubmitField(label='注册')
@app.route('/register/', methods=['GET', 'POST'])
def register():
register_form = RegisterForm()
if request.method =='POST':
if register_form.validate_on_submit():
name = register_form.name.data
password = register_form.password.data
password2 = register_form.password2.data
return 'success'
return render_template('register.html', register_form=register_form)
ajax校验
from flask import Flask, render_template, request
from flask import jsonify
app = Flask(app)
app.config['DEBUG'] = True
@app.route('/register/')
def register():
return render_template('register.html')
@app.route('/register_ajax/')
def register_ajax():
dic = {
'code':200,
'msg':'success'
}
name = request.args.get('name')
if name == 'zss':
dic['code'] = 400
dic['msg'] = '用户名已被注册'
return jsonify(dic)
@app.route('/login/')
def login():
return render_template('login.html')
@app.route('/login_ajax/', methods=['GET', 'POST'])
def login_ajax():
dic = {
'code':200,
'msg':'success'
}
name = request.form.get('name')
pwd = request.form.get('pwd')
# 测试print(name,pwd)
return jsonify(dic)
if __name__=='__main__'
app.run()
result api
在这里插入代码片from flask import Flask
from flask_restful import Api,Resource
app = Flask(__name__)
api = Api(app) # 创建api对象
# 创建视图类继承Resource
class Hello(Resource):
def get(self):
return {'message':'success'}
class PageTest(Resource):
def get(self, page):
return {'page':page}
api.add_resource(PageTest,'/page/<string:page>')
# 创建路由
api.add_resource(Hello,'/hello')
if __name__=='__main__'
app.run()