• 猿创征文|Python基础——Visual Studio版本——Web开发


    Python基础——Visual Studio版本——Web开发

    目录

    Python基础——Visual Studio版本——Web开发

    环境要求

    Flask概述

    基础demo示例:

    Python_DBHelper:

    数据库查询遍历

    Python静态路由

    静态路由跳转

    Python动态路由

    模板的使用·utf-8

    示例提升


    环境要求

    咱们这里主要使用的是【Flask】框架,下图是下载方法,也可以使用【pip install Flask】下载 

    安装位置

    操作步骤 

    安装过程在下方的输出中显示。

    Flask概述

    Flask是目前最流行的开源的Python Web框架之一,其受欢迎程度不输于Django。

    Flask是一个轻量级的可定制框架,拥有强大的插件库,较其他同类型框架更为灵活、轻便、安全且容易上手。

    Flask的特点可以归结如下:

    内置开发服务器和调试器
    与Python单元测试功能无缝衔接
    使用Jinja2模板
    完全兼容WSGI 1.0标准
    基于Unicode编码

    基础demo示例:

    1. from flask import Flask as h5
    2. # # 创建一个app应用
    3. app = h5(__name__)
    4. # 注册装饰器,装饰器的作用:将路由映射到视图
    5. @app.route('/')
    6. def index():
    7. return '

      Hello Python World!

      '
    8. app.run()

    可以看到,只要有访问就会有有消息提示。 

    浏览器中输入给予的链接路径回车即可。 

    在一个Web应用中,客户端和服务器上的Flask程序的交互可以概括为以下几步:

    1. 用户在浏览器输入URL访问某个资源。
    2. Flask接收用户请求并分析请求的URL。
    3. 为这个URL找到对应的处理函数。
    4. 执行函数并生成响应,返回给浏览器。
    5. 浏览器接收并解析响应,将信息显示在页面中。

    添加数据库示例:

    Python_DBHelper:

    1. import pymysql
    2. class DBHelper():
    3. def __init__(self):
    4. # 数据库连接参数
    5. self.host = "rm-bp1zq3879r28p726lco.mysql.rds.aliyuncs.com"
    6. self.user = "qwe8403000"
    7. self.pwd = "Qwe8403000"
    8. self.db = "laoshifu"
    9. self.charset = "utf-8"
    10. # 获取游标
    11. def getConnect(self):
    12. if not self.db:
    13. raise(NameError, "没有设置数据库信息")
    14. self.conn = pymysql.connect(host=self.host, port=3306, user=self.user, passwd=self.pwd, db=self.db, charset="utf8mb4")
    15. # 按照字典的方式返回
    16. cursor = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
    17. if not cursor:
    18. raise(NameError, "连接数据库失败")
    19. else:
    20. return cursor
    21. # 查
    22. def query(self, sql):
    23. cursor = self.getConnect()
    24. cursor.execute(sql)
    25. result = cursor.fetchall() # 获取查询的所有数据
    26. # 查询完毕后必须关闭连接
    27. self.conn.close()
    28. return result
    29. # 增删改查
    30. def excute(self, sql):
    31. cursor = self.getConnect()
    32. cursor.execute(sql)
    33. self.conn.commit()
    34. self.conn.close()

    数据库查询遍历

    1. from flask import Flask
    2. from DBHelper import DBHelper # 使用第六章的DBHelper
    3. app = Flask(__name__) # 创建程序实例
    4. # 注册路由
    5. @app.route('/')
    6. def index():
    7. db = DBHelper()
    8. result = db.query("select * from mytestuser20220830")
    9. backStr = ""
    10. for info in result:
    11. backStr += ('编号:' + str(info["userid"]))
    12. backStr += ('账号:' + str(info["username"]))
    13. backStr += ('密码:' + str(info["password"]))
    14. backStr += "
      "
    15. return backStr
    16. app.run()

    Python静态路由

    1. @app.route(url路径)
    2. def 视图函数():
    3. 代码段

    静态路由跳转

    1. from flask import Flask
    2. app = Flask(__name__)
    3. @app.route("/")
    4. def index():
    5. return "点击跳转"
    6. # 注册路由:参数与href属性相对应
    7. @app.route("/hello")
    8. def say_hello():
    9. return "

      hello flask!

      点击跳转"
    10. app.run()

    根据Running提示访问即可。

    示例效果:

    Python动态路由

    1. @app.route(url路径/<变量名>)
    2. def 视图函数(变量名):
    3. 代码段

    这里无需写传递的变量名称。直接传递值即可。 

    1. from flask import Flask
    2. app = Flask(__name__)
    3. @app.route("/")
    4. def index():
    5. # 注册路由:参数与href属性相对应
    6. @app.route("/hello/")
    7. def search(userid):
    8. return "

      编号是:%s

      "
      % userid
    9. app.run()

    模板的使用·utf-8

    templates/index.html

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>模板使用title>
    6. head>
    7. <body>
    8. 欢迎你,{{userinfo.username}}
    9. body>
    10. html>

    python编码 

    1. from flask import Flask
    2. from flask import render_template # 导入render_template函数
    3. app = Flask(__name__)
    4. user = {"username":"zhangsan",
    5. "userpwd":"123"}
    6. @app.route("/")
    7. def index():
    8. # 以键/值对方式传递数据
    9. return render_template("index.html",userinfo=user)
    10. if __name__ == "__main__":
    11. app.run(debug=True)

    执行访问测试:

     

    示例提升

    templates/Template.html

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>模板H5title>
    6. <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    7. head>
    8. <body>
    9. <a href="/AddInfo" class="btn btn-primary">添加a>
    10. <table class="table table-hover table-bordered" style="text-align:center">
    11. <tr class="info">
    12. <th>编号th>
    13. <th>账号th>
    14. <th>密码th>
    15. tr>
    16. {% for row in showList %}
    17. <tr>
    18. <td>{{ row["userid"] }}td>
    19. <td>{{ row["username"] }}td>
    20. <td>{{ row["password"] }}td>
    21. tr>
    22. {% endfor %}
    23. table>
    24. body>
    25. html>

    修改模板的编码格式:


    templates/AddInfo.html

    需要修改编码格式utf-8

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>添加title>
    6. <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
    7. head>
    8. <body>
    9. <form action="/SubmitAddInfo" method="post">
    10. <p>
    11. <input type="text" name="userName" placeholder="请输入用户名" class="form-control" />
    12. p>
    13. <p>
    14. <input type="text" name="passWord" placeholder="请输入用户密码" class="form-control" />
    15. p>
    16. <p>
    17. <input type="submit" value="添加" class="btn btn-primary" />
    18. p>
    19. form>
    20. body>
    21. html>

    python编码示例

    1. from DBHelper import DBHelper # 使用第六章的DBHelper
    2. from flask import Flask, render_template, redirect
    3. from flask import request
    4. import time
    5. app = Flask(__name__)
    6. # 注册路由
    7. @app.route('/')
    8. def index():
    9. db = DBHelper()
    10. result = db.query("select * from mytestuser20220830")
    11. print(result)
    12. return render_template("Template.html", showList=result)
    13. @app.route('/AddInfo')
    14. def AddInfo():
    15. return render_template("AddInfo.html")
    16. # 注册路由
    17. @app.route('/SubmitAddInfo', methods=["POST"])
    18. def SubmitAddInfo():
    19. userName = request.form.get("userName")
    20. passWord = request.form.get("passWord")
    21. sql = str.format("insert into mytestuser20220830 values(0,'{0}','{1}')",userName, passWord)
    22. db = DBHelper()
    23. db.excute(sql)
    24. return redirect('/')
    25. app.run()

    显示效果:

    添加测试:点击添加按钮

    可以看到添加【zhaoliu】成功。

  • 相关阅读:
    ABAP Web Service 调用的一个例子
    Liunx进程间信号
    量子计算(六):量子计算软件介绍
    c语言-结构体-小白3小时总结
    Java反射原理和实际用法
    python 归一化
    C#之网络
    最小二乘法在编程中的实现
    JSX 介绍
    购买窗帘时哪些可以不做?-江南爱窗帘十大品牌
  • 原文地址:https://blog.csdn.net/feng8403000/article/details/126615611