Python基础——PyCharm版本——第十章、Web开发(2)

简介: Python基础——PyCharm版本——第十章、Web开发

动态路由

@app.route(url路径/<变量名>)
def 视图函数(变量名):
    代码段
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
    return "<a href='/hello/666'>点击跳转</a>"
# 注册路由:参数与href属性相对应
@app.route("/hello/<userid>")
def search(userid):
    return "<h1>编号是:%s</h1>" % userid
app.run()

image.png

模板的使用

Templat.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板H5</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<a href="/AddInfo" class="btn btn-primary">添加</a>
<table class="table table-hover table-bordered" style="text-align:center">
        <tr class="info">
            <th>编号</th>
            <th>创建时间</th>
            <th>用户名</th>
            <th>简介</th>
        </tr>
        {% for row in showList %}
        <tr>
         <td>{{ row[0] }}</td>
            <td>{{ row[1] }}</td>
            <td>{{ row[2] }}</td>
            <td>{{ row[3] }}</td>
        </tr>
        {% endfor %}
    </table>
</body>
</html>


AddInfo.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>添加</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
    <form action="/SubmitAddInfo" method="post">
    <p>
        <input type="text" name="userName" placeholder="请输入用户名" class="form-control"/>
    </p>
    <p>
        <input type="text" name="introduce" placeholder="请输入用户简介" class="form-control"/>
    </p>
    <p>
        <input type="submit" value="添加" class="btn btn-primary"/>
    </p>
    </form>
</body>
</html>


DBHelper.py

import pymysql
class DBHelper():
    """DBHelper"""
    def NoQuery(self, sql):
        """DML语句"""
        conn = pymysql.connect(host='127.0.0.1',
                               port=3306,
                               user='root',
                               passwd='root',
                               db='test',
                               charset='utf8')
        cursor = conn.cursor()
        rows = cursor.execute(sql)
        conn.commit()
        cursor.close()
        conn.close()
        return rows
    def Query(self, sql):
        """查DQL询语句"""
        conn = pymysql.connect(host='127.0.0.1',
                               port=3306,
                               user='root',
                               passwd='root',
                               db='test',
                               charset='utf8')
        cursor = conn.cursor()
        cursor.execute(sql)
        info = cursor.fetchall()
        cursor.close()
        conn.close()
        return info


demo.py

from DBHelper import DBHelper  # 使用第六章的DBHelper
from flask import Flask, render_template, redirect
from flask import request
import time
app = Flask(__name__)
# 注册路由
@app.route('/')
def index():
    db = DBHelper()
    result = db.Query("select * from userinfo")
    print(result)
    return render_template("Template.html", showList=result)
@app.route('/AddInfo')
def AddInfo():
    return render_template("AddInfo.html")
def GetNow(localTime):
    """获取当前时间"""
    return time.strftime("%y-%m-%d %H:%M:%S", localTime)
# 注册路由
@app.route('/SubmitAddInfo', methods=["POST"])
def SubmitAddInfo():
    userName = request.form.get("userName")
    introduce = request.form.get("introduce")
    sql = str.format("insert into userinfo values(0,'{0}','{1}','{2}')", GetNow(time.localtime()), userName, introduce)
    db = DBHelper()
    db.NoQuery(sql)
    return redirect('/')
app.run()


运行效果:


image.png


添加俩数据看看:

image.png

添加功能


image.png

image.png

相关文章
|
5月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
469 4
|
7月前
|
存储 监控 算法
淘宝买家秀 API开发实录Python(2025)
本文讲述了作者在电商开发领域,尤其是对接淘宝买家秀 API 接口过程中所经历的挑战与收获。从申请接入、签名验证、频率限制到数据处理和实时监控,作者分享了多个实战经验与代码示例,帮助开发者更高效地获取和处理买家秀数据,提升开发效率。
|
8月前
|
人工智能 数据安全/隐私保护 Python
小红书图文生成器,小红书AI图文生成工具,python版本软件
Pillow库自动生成符合平台尺寸要求的配图7;3)利用Playwright实现自动化发布流程6。
|
9月前
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!
|
9月前
|
JavaScript 前端开发 API
鸿蒙5开发宝藏案例分享---Web加载时延优化解析
本文深入解析了鸿蒙开发中Web加载完成时延的优化技巧,结合官方案例与实际代码,助你提升性能。核心内容包括:使用DevEco Profiler和DevTools定位瓶颈、四大优化方向(资源合并、接口预取、图片懒加载、任务拆解)及高频手段总结。同时提供性能优化黄金准则,如首屏资源控制在300KB内、关键接口响应≤200ms等,帮助开发者实现丝般流畅体验。
|
前端开发 JavaScript Shell
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
本文为鸿蒙开发者整理了Web性能优化的实战案例解析,结合官方文档深度扩展。内容涵盖点击响应时延核心指标(≤100ms)、性能分析工具链(如DevTools时间线、ArkUI Trace抓取)以及高频优化场景,包括递归函数优化、网络请求阻塞解决方案和setTimeout滥用问题等。同时提供进阶技巧,如首帧加速、透明动画陷阱规避及Web组件初始化加速,并通过优化前后Trace对比展示成果。最后总结了快速定位问题的方法与开发建议,助力开发者提升Web应用性能。
|
9月前
|
JSON 开发框架 自然语言处理
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)
本文主要介绍了应用开发中的三大核心内容:生命周期管理、资源限定与访问以及多语言支持。在生命周期部分,详细说明了应用和页面的生命周期函数及其触发时机,帮助开发者更好地掌控应用状态变化。资源限定与访问章节,则聚焦于资源限定词的定义、命名规则及匹配逻辑,并阐述了如何通过 `$r` 引用 JS 模块内的资源。最后,多语言支持部分讲解了如何通过 JSON 文件定义多语言资源,使用 `$t` 和 `$tc` 方法实现简单格式化与单复数格式化,为全球化应用提供便利。
323 104
|
9月前
|
JavaScript 前端开发 API
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(二)
本文介绍了HarmonyOS应用开发中的HML、CSS和JS语法。HML作为标记语言,支持数据绑定、事件处理、列表渲染等功能;CSS用于样式定义,涵盖尺寸单位、样式导入、选择器及伪类等特性;JS实现业务逻辑,包括ES6语法支持、对象属性、数据方法及事件处理。通过具体代码示例,详细解析了页面构建与交互的实现方式,为开发者提供全面的技术指导。
330 104
|
9月前
|
开发框架 编解码 JavaScript
【HarmonyOS Next之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(一)
该文档详细介绍了一个兼容JS的类Web开发范式的方舟开发框架,涵盖概述、文件组织、js标签配置及app.js等内容。框架采用HML、CSS、JavaScript三段式开发方式,支持单向数据绑定,适合中小型应用开发。文件组织部分说明了目录结构、访问规则和媒体文件格式;js标签配置包括实例名称、页面路由和窗口样式信息;app.js则描述了应用生命周期与对象管理。整体内容旨在帮助开发者快速构建基于方舟框架的应用程序。
348 102
|
6月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
753 7

推荐镜像

更多