flask基础demo

一般模板


	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数据库"""

  1. 设置URI
    SQLALCHEMY_DATABASE_URI = ‘mysql://root:admin@127.0.0.1:3306/fk01’
  2. 下载pymysql
  3. 安装:
    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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值