Flask之快速入门
一、初识Flask
1、安装Flask
(flask_study) C:\Users\Administrator>pip install flask
2、简单实例
from flask import Flask #实例化Flask对象 app = Flask(__name__) @app.route('/') def index(): return "index" if __name__ == '__main__': app.run()
这样简单的几行代码就可以进行运行,默认启动的端口时5000端口。
二、快速入门
学过Django框架的小伙伴知道Djanog是很全面的,包括有自己的模板等功能,那么在Flask中也有。现在可以通过一个简单的登录实例来进行学习了解一下。
from flask import Flask,request,render_template,redirect,session,url_for import functools app = Flask(__name__) user_data = { 1:{'name':'张三','age':23,'gender':'男'}, 2:{'name':'李四','age':18,'gender':'男'}, 3:{'name':'王五','age':35,'gender':'女'}, } def auth(func): @functools.wraps(func) #保留func元信息 def innder(*args,**kwargs): user = session.get('user_info') if not user: return redirect(url_for('login')) # 反向生成url return func(*args,**kwargs) return innder @app.route('/detail/<int:id>',methods=['GET']) @auth def detail(id): user = user_data.get(id) return render_template('detail.html',user=user) @app.route('/index') @auth def index(): return render_template('index.html',user=user_data) @app.route('/login',methods=['GET','POST'],endpoint='login') def login(): if request.method == 'GET': return render_template('login.html') else: user = request.form.get("user") pwd = request.form.get("pwd") if user == "root" and pwd == "123": session["user_info"] = user return redirect('/index') return render_template('login.html') if __name__ == '__main__': app.run()
上面在这个.py文件下新建一个templates文件夹,然后再里面新建一个login.html、index.html这样才能找到这个文件。因为在Flask这个类中默认模板的路径就是在同级的templates文件夹下找模板文件。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form method="post"> <input type="text" name="user" value="用户名"/> <input type="text" name="pwd" value="密码"/> <input type="submit" value="登录"> </form> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> {% for k,v in user.items() %} <li>{{v.name}}-{{v["name"]}}-{{v.get("name")}}</li> {% endfor %} </body> </html>
作者:iveBoy
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。