IDE用的PyCharm(还是vs强大啊)。

项目结构:

2:页面:
  1. <!doctype html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="UTF-8">
  5.  
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>用户登录</title><link rel="shortcut icon" href="{{ url_for('static', filename='images/lock.png')}}"/>
  8. </head>
  9. <body>
  10. <div align="center">
  11. <div>
  12. <div>
  13. <h1>Welcome</h1>
  14. <form class="form" method="post" action="" onsubmit="return Login();">
  15. <input type="text" placeholder="Username" name="username" id="username">
  16. <input type="password" placeholder="Password" name="password" id="password">
  17. <button type="submit" id="login-button">SubmitLogin</button>
  18. <button type="button" id="btnlogin">ButtonLogin</button>
  19. <a href="infor">testhtm</a>
  20. </form>
  21. </div>
  22. </div>
  23. </div>
  24.  
  25. <script type="text/javascript" src="{{ url_for('static', filename='jquery.min.js') }} "></script>
  26. {#<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"></script>#}
  27. <script type="text/javascript">
  28. function Login() {
  29. var login = false;
  30. var txtname = $("#username").val();
  31. var txtpsw = $("#password").val();
  32.  
  33. $.ajax({
  34. {#url: "/py_login",可以#}
  35. url:"{{url_for("py_login") }}",{# 可以调到后台,路由名称#}
  36. {#data: "username=" + txtname + "&password=" + txtpsw,#}
  37. data:{"username":txtname,"userpswd":txtpsw},
  38. type: 'GET',
  39. contentType: 'json',{#'application/x-www-form-urlencoded',#}
  40. async: false,
  41. success: function (d) {
  42. alert("success!"+d)
  43. var status = d.status;
  44. if (d != "undefined" && d=="success")
  45. {
  46. window.location.href="infor";{# 这里链接的应该是路由中的名称#}
  47. }
  48. else
  49. {
  50. alert("登录失败!")
  51. }
  52. }
  53. });
  54. return login;
  55. }
  56. </script>
  57.  
  58. </body>
  59. </html>

3:后台FlaskWeb.py文件。

  1. from flask import Flask, render_template, redirect, request, url_for , send_file
  2. import pymssql
  3.  
  4. app = Flask(__name__)
  5. # app.debug = True;
  6. # @app.route('/')
  7. @app.route('/')
  8. def index():
  9. return render_template('login.html') # send_file('index.html')
  10.  
  11. @app.route('/py_login',methods=['GET','POST'])
  12. def py_login():
  13. if request.method == 'GET':
  14.  
  15. print(request.form)
  16. txtname = request.args.get('username')
  17. txtpswd = request.args.get('userpswd')
  18.  
  19. if(txtname=="longdb" and txtpswd==""):
  20. return "success" # get可以到这里
  21. print(url_for('/testhtm'))
  22. # return redirect(url_for('/testhtm'))
  23. else:
  24. return "enterfailed"
  25.  
  26. @app.route('/infor') #页面链接该路由名称
  27. def f_infor():
  28. return render_template('infor.html') # send_file('/templates/testhtm.html') #
  29.  
  30. # 函数
  31.  
  32. @app.route('/insertdata',methods=['GET','POST'])
  33. def py_insertdata():
  34. # noinspection PyBroadException
  35. try:
  36. # conn = pymssql.connect(server='longdabing',user='sa',password='sasa',database='longtest')
  37. conn = pymssql.connect('longdabing', 'sa', 'sasa', 'longtest')
  38. cursor = conn.cursor()
  39.  
  40. txtno = request.args.get('hno')
  41. txtname = request.args.get('hname')
  42. txtobject = request.args.get('hobject')
  43. txtscore = request.args.get('hscore')
  44. sql = "INSERT dbo.infor( no, name, object, score )VALUES ( '"+txtno+"','"+txtname+"','"+txtobject+"','"+txtscore+"')"
  45. cursor.execute(sql)
  46. conn.commit() # 提交数据到数据库,否则不会插入到数据库中
  47.  
  48. conn.close()
  49. return "insertok"
  50. except Exception as e:
  51. conn.rollback() # 回滚操作
  52. return "insertfailed"
  53. raise e
  54. # finally:
  55. # conn.close()
  56.  
  57. def getdata(sql):
  58. # conn = pymssql.connect(server='longdabing',user='sa',password='sasa',database='longtest')
  59. conn = pymssql.connect('longdabing', 'sa', 'sasa', 'longtest')
  60. cursor = conn.cursor()
  61. cursor.execute(sql)
  62. row = cursor.fetchone()
  63. while row:
  64. print("ID=%d, No=%s, Name=%s, Object=%s, Score=%s" % (row[0], row[1], row[2], row[3], row[4]))
  65. row = cursor.fetchone()
  66. conn.close()
  67. return
  68.  
  69. if __name__ == '__main__':
  70. app.run()

注明:运行FlaskWeb.py文件时,路由longin.html页面,进入该页面后,输录入账号和密码,验证通过的话,则通过window.location.href="infor";{# 这里链接是路由中的名称#} 来跳转页面,最终还是由后台加载页面 infor.html。

本来想在用户和密码验证通过后,用 redirect()方法跳转到 infor.html页面的,但是都失败,所以才用了window.location.href。

求大神指点后台直接跳转的方法。

Python Flask框架之页面跳转的更多相关文章

  1. #3使用html+css+js制作网页 番外篇 使用python flask 框架 (I)

    #3使用html+css+js制作网页 番外篇 使用python flask 框架(I 第一部) 0. 本系列教程 1. 准备 a.python b. flask c. flask 环境安装 d. f ...

  2. Python Flask框架路由简单实现

    Python Flask框架路由的简单实现 也许你听说过Flask框架.也许你也使用过,也使用的非常好.但是当你在浏览器上输入一串路由地址,跳转至你所写的页面,在Flask中是怎样实现的,你是否感到好 ...

  3. #3使用html+css+js制作网页 番外篇 使用python flask 框架 (II)

    #3使用html+css+js制作网页 番外篇 使用python flask 框架 II第二部 0. 本系列教程 1. 登录功能准备 a.python中操控mysql b. 安装数据库 c.安装mys ...

  4. Linux ubantu中安装虚拟/使用环境virtualenv以及python flask框架

    今天学习了python flask框架的安装过程以及使用案例,感觉网上讲的东西都没有从我们这种初学者的角度去考虑(哈哈),最后还是奉上心得: 1.安装virtualenv $ sudo apt-get ...

  5. python flask框架学习——开启debug模式

    学习自:知了课堂Python Flask框架——全栈开发 1.flask的几种debug模式的方法 # 1.app.run 传参debug=true app.run(debug=True) #2 设置 ...

  6. python flask框架学习(二)——第一个flask程序

    第一个flask程序 学习自:知了课堂Python Flask框架——全栈开发 1.用pycharm新建一个flask项目 2.运行程序 from flask import Flask # 创建一个F ...

  7. python flask框架学习(一)——准备工作和环境配置与安装

    Flask装备: 学习自:知了课堂Python Flask框架——全栈开发 1.Python版本:3.6 2.Pycharm软件: 3.安装虚拟环境: (1)安装virtualenv: pip ins ...

  8. python Flask框架mysql数据库配置

    我是一个没有笔记习惯的低级程序员,但是我还是喜欢编程,从小学就开始跟着玩电脑,对抓鸡,ddos,跳板刷钻开始了自己的IT 旅程,之后学习了各种语言,但是可惜都不没有达到精通,都是略懂一二,现在想把Py ...

  9. Python Flask框架

    Python有很多Web框架,可谓是百家争鸣,我这里列出几个比较叼的几个框架 Django      市场占有率最高,官方文档几近完美,但是适合比较大的项目,小项目会显得累赘. Tornado    ...

随机推荐

  1. Luogu 4841 城市规划

    BZOJ 3456 权限题 太菜了推不出式子 我们设$f(n)$表示$n$个点的无向连通图的数量,那么有 $$f(n) = 2^{\binom{n}{2}} - \sum_{i = 1}^{n - 1 ...

  2. Python3 网络爬虫开发实战学习弱点书签

    1. urllib.robotparse模块对robot.txt文件的解析,can_fetch()方法和parse()方法. Page121 2. lxml.etree模块自动补全Html代码,Htm ...

  3. 编写高质量代码改善C#程序的157个建议——建议59:不要在不恰当的场合下引发异常

    建议59:不要在不恰当的场合下引发异常 常见的不易于引发异常的情况是对在可控范围内的输入和输出引发异常. private void SaveUser3(User user) { ) { throw n ...

  4. LSI SAS3IRCU配置SAS3系列RAID卡

    LSI SAS3IRCU配置SAS3系列RAID卡 一.适用的controller LSISAS3008 LSISAS3004 二.名词解释 Controller: IR: Volume: 卷,基于物 ...

  5. Django中使用后台网站模板

    背景: 一直想自己开发一个网站,但是前端知识又不多,好在有模板可以使用,下载地址:https://download.csdn.net/download/wjgccsdn/10843808 开干:   ...

  6. C# worksheet设置Excel样式

    1.例子导出Excel的样式 样式代码 public void Exportdatagridviewtoexcel(string Textname) { SaveFileDialog savedial ...

  7. js定时更换图片

    //定时更换图片: 调用:smileChange.start(); smileChange.stop(); var smileChange = { start: function () { var t ...

  8. ubuntu 下安装ffmpeg

    FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视 频的完整解决方案.它包含了非常先进的音频/视频编解码库 ...

  9. UIButton的几种触发方式

    1.说明 说明:由于是在"iOS 模拟器"中测试的,所以不能用手指,只能用鼠标. 1)UIControlEventTouchDown 指鼠标左键按下(注:只是"按下&qu ...

  10. day4学python 字符编码转换+元组概念

    字符编码转换+元组概念 字符编码转换 #coding:gbk //此处必声明 文件编码(看右下角编码格式) #用来得到python默认编码 import sys print(sys.getdefaul ...