flaskFlask是一个用Python编写的Web微框架,可以让我们使用Python语言快速实现一个网站或Web服务。使用flask当你写一个功能的时候,如果你想让每个人都使用它,你就需要使用flask来达到这个目的。导入falsk.Flask类实例化一个Flask对象绑定路由运行flask应用#1.导入Flask类;fromflaskimportFlask#2.实例化一个Flask对象;#__name__为模块名或包名#作用:根据该参数确定flask应用的路径,从而快速找到模板和html文件的默认路径;#模块是一个python文件;package是一个目录(在普通目录下增加一个__init__.py);#app=Flask(__name__)#3-1。基本路由:通过路由绑定一个视图函数#@app.route('/'):告诉Flask哪个URL可以触发相应的函数,也称为路由;#对应定义一个视图函数,即返回显示给用户浏览器的内容;@app.route('/')defindex():return"
helloworld
"@app.route('/login/')deflogin():return"login"#4.运行Flask应用,可以指定ip和端口;#'0.0.0.0'所有IP都可以访问;app.run('0.0.0.0',9000)路由和变量规则在flask框架中,其中路由表示用户请求的URL,找到其对应的处理函数。部分常用路由规则url可以标记为变量<变量名>flask中路由中常用的变量类型:int,string,float,path,uuidfromflaskimportFlask,requestapp=Flask(__name__)@app.route('/
/comments/')defcomment1(id):return"Commentid:%s"%(id)@app.route('/welcome//')defwelcome(user):app.logger.debug('thisisadebug')app.logger.warning('thisisawarn')returnuser+"User,welcometoSheenStar'shomepage"#特殊url地址:http://www.baidu.com/query?id=13&name=clotho@app.route('/query')defquery():#geturl地址中key值对应的value;id=request.args.get('id')name=request.args.get('name')return"id:%s,name:%s"%(id,name)app.run()反向URL到获取HTTP请求数据客户端通过URL访问服务端程序,会向服务端发送两种消息,一种是HTTP请求头,一种是请求数据1、常见的HTTP请求方式:GET:1).获取信息2).提交的信息将显示在url:http://www.wewtos.org/login?user=sheen&passwd=starPOST:1)。提交信息,不在url中显示,有利于数据安全;2、默认路由接受的请求方法是_____get___?如何指定接收多个HTTP请求方法?路由:@app.route('/login/',methods=['GET','POST'])查看函数:deflogin():3、如何判断用户请求的HTTP方法?request.method如何获取用户POST请求提交的表单数据?request.form['user']4.模板渲染(jinja2):为什么?python生成的html不易修改和维护,所以将html内容单独放到templates目录下;如何?1).到当前项目目录下查看模板是否存在?然后判断templates目录下的.html文件是否有登录?2).读取login.html文件的内容作为render_template的返回值;3).最后返回到用户的浏览器;render_template('login.html')5.重定向和错误?redirectreturnrender_template('login.html',message="Incorrectusernameorpassword")例子:登录跳转#这里index.html、login.html、404.html是可访问的网页,需要提前写好#所有模板都需要放在templates目录下fromflaskimportFlask,request,render_template,redirect,url_for,abortapp=Flask(__name__)@app.route('/')defindex():returnrender_template('index.html')@app.route('/login/',methods=['GET','POST'])deflogin():ifrequest.method=='POST':print(request.form)#1.如何获取用户提交的信息?user=request.form['user']passwd=request.form['passwd']#2.判断用户名和密码是否正确ifuser=='root'andpasswd=='sheen':#如果登录成功,跳转到首页;returnredirect(url_for('index'))else:#如果登录失败,重新登录;returnrender_template('login.html',message="usernameorpassworderror")else:#用户是GET请求,返回登录html页面#1.读取login.html文件内容#2.返回读取内容到用户界面returnrender_template('login.html')#404异常处理:类似于捕获异常@app.errorhandler(404)defnot_found(e):returnrender_template('404.html')#抛出异常@app.route('/user//')defuser(user_id):if0