> 文档中心 > 猿创征文|Python基础——Visual Studio版本——Web开发

猿创征文|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示例:

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

Hello Python World!

' app.run()

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

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

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

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

添加数据库示例:

Python_DBHelper:

import pymysqlclass DBHelper():    def __init__(self): # 数据库连接参数 self.host = "rm-bp1zq3879r28p726lco.mysql.rds.aliyuncs.com" self.user = "qwe8403000" self.pwd = "Qwe8403000" self.db = "laoshifu" self.charset = "utf-8"    # 获取游标    def getConnect(self): if not self.db:     raise(NameError, "没有设置数据库信息") self.conn = pymysql.connect(host=self.host, port=3306, user=self.user, passwd=self.pwd, db=self.db, charset="utf8mb4") # 按照字典的方式返回 cursor = self.conn.cursor(cursor=pymysql.cursors.DictCursor) if not cursor:     raise(NameError, "连接数据库失败") else:     return cursor    # 查    def query(self, sql): cursor = self.getConnect() cursor.execute(sql) result = cursor.fetchall()  # 获取查询的所有数据 # 查询完毕后必须关闭连接 self.conn.close() return result   # 增删改查    def excute(self, sql): cursor = self.getConnect() cursor.execute(sql) self.conn.commit() self.conn.close()

数据库查询遍历

from flask import Flaskfrom DBHelper import DBHelper  # 使用第六章的DBHelper app = Flask(__name__)  # 创建程序实例  # 注册路由@app.route('/')def index():    db = DBHelper()    result = db.query("select * from mytestuser20220830")    backStr = ""    for info in result: backStr += ('编号:' + str(info["userid"])) backStr += ('账号:' + str(info["username"])) backStr += ('密码:' + str(info["password"])) backStr += "
" return backStr app.run()

Python静态路由

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

静态路由跳转

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

hello flask!

点击跳转" app.run()

根据Running提示访问即可。

示例效果:

Python动态路由

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

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

from flask import Flask app = Flask(__name__)  @app.route("/")def index():    return "点击跳转传递666"  # 注册路由:参数与href属性相对应@app.route("/hello/")def search(userid):    return "

编号是:%s

" % userid app.run()

模板的使用·utf-8

templates/index.html

        模板使用    欢迎你,{{userinfo.username}}

python编码 

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

执行访问测试:

 

示例提升

templates/Template.html

        模板H5        添加     {% for row in showList %}  {% endfor %}    
编号 账号 密码
{{ row["userid"] }} {{ row["username"] }} {{ row["password"] }}

修改模板的编码格式:

templates/AddInfo.html

需要修改编码格式utf-8

        添加         

python编码示例

from DBHelper import DBHelper  # 使用第六章的DBHelperfrom flask import Flask, render_template, redirectfrom flask import requestimport time app = Flask(__name__)  # 注册路由@app.route('/')def index():    db = DBHelper()    result = db.query("select * from mytestuser20220830")    print(result)    return render_template("Template.html", showList=result)  @app.route('/AddInfo')def AddInfo():    return render_template("AddInfo.html")  # 注册路由@app.route('/SubmitAddInfo', methods=["POST"])def SubmitAddInfo():    userName = request.form.get("userName")    passWord = request.form.get("passWord")    sql = str.format("insert into mytestuser20220830 values(0,'{0}','{1}')",userName, passWord)    db = DBHelper()    db.excute(sql)    return redirect('/')  app.run()

显示效果:

添加测试:点击添加按钮

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