弹射起步——pythonweb开发Flask框架,前端原生+Flask后端框架+mysql数据库实战(附带小案例)

news2024/9/24 5:24:41

 大家好,我是csdn的博主:lqj_本人

这是我的个人博客主页:

lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm=1011.2415.3001.5343哔哩哔哩欢迎关注:小淼Develop

小淼Develop的个人空间-小淼Develop个人主页-哔哩哔哩视频

本篇文章主要讲述:快速上手,pythonweb开发Flask框架

目录

python适合做web应用开发

Flask框架

小案例的文件结构

 mysql数据库表结构

后端代码实现

前端原生代码实现

小案例前后端交互效果:


python适合做web应用开发

一是易于学习:Python 是初学者最流行的语言,与 Java 和 C ++ 等其他语言相比,你可以编写更少的代码,减少出错,从而提升效率。不仅如此,它还具有较低的进入门槛,因为它与日常语言相对更相似,可以轻松地理解代码。

二是具有丰富的生态系统和库:Python 提供了广泛的库工具和包,可以访问许多预先编写的代码,从而缩短了应用程序的开发时间。例如,你可以使用Numpy 和 Pandas 进行数学分析,使用 Pygal 进行图表分析,并使用 SLQALchemy 进行可组合查询。Python 还提供了惊人的 Web 框架,例如Django 和 Flask,后面部分深入探讨。

三是快速原型制作:与其他编程语言相比,Python 可以节省大量的时间来构建项目,你的想法可以更快地实现,从而可以更快的获得反馈并快速迭代。这种高效的开发使 Python 特别适合那些可以更快进入市场以获得竞争优势的创业公司。

四是广泛流行:Python 是世界上最受欢迎的语言之一,拥有来自世界各地的社区贡献,几乎所有的技术问题通过搜索引擎都可以很快找到解决方案。Python 本身也在不断更新以提供新功能和库,同时还提供了出色的文档和社区支持。特别是对于新开发人员,Python 提供了广泛的支持和框架。

Flask框架

Flask 被认为是一个微框架,是一个简约的 Web 框架。它不那么“包含电池”,这意味着它缺少像 Django 这样的全栈框架提供的许多特性和功能,例如 Web 模板引擎,帐户授权和身份验证。其主要特色如下:

•一个轻量级、微框架•学习成本相对较低,入门快•支持 JinJa2 模版引擎•继Django模板语言之后的现代模板语言

Flask 极简且轻巧,这意味着您可以在编写代码时添加所需的扩展和库。Flask背后的理念是,它仅提供构建应用程序所需的组件,因此开发人员具有很大的灵活性和控制力。Flask 还是一种流行且功能强大的 Web 框架,已被 Netflix,Linkedin 和 Uber 等大公司使用。

小案例的文件结构

 mysql数据库表结构

后端代码实现

简要说明:调用Flask框架库、pymysql第三方库、request模块库、render_template。

实例化Flask对象:

app = Flask(__name__)

/add/user该页面用于添加数据到mysql数据库的表中;

/show/user该页面用于实时渲染出mysql数据库中数据表的数据;

request.method == "GET"用于指定add/user页面,智能通过"GET"请求方式发送请求;
render_template用于连接到前端html原生页面;
from flask import Flask, render_template, request
import pymysql

app = Flask(__name__)


@app.route("/add/user",methods=["GET","POST"])
def add_user():
    if request.method == "GET":
        return render_template("add_user.html")
    # print(request.form)
    username = request.form.get("user")
    password = request.form.get("pwd")
    mobile = request.form.get("mobile")

    #1.连接mysql
    conn = pymysql.connect(host="你自己的ip", port=你自己的端口, user='root', password='你自己的mysql密码', charset='utf8', db='unicom')

    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

    #2.执行sql
    sql = "insert into admin(username,password,mobile) values (%s,%s,%s)"
    cursor.execute(sql, [username, password, mobile])

    conn.commit()
    #3.关闭连接
    cursor.close()
    conn.close()
    return "xxx"

@app.route("/show/user")
def show_user():
    #连接mysql
    conn = pymysql.connect(host="你自己的ip", port=你自己的端口, user='root', password='你自己的mysql密码', charset='utf8', db='unicom')
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

    #执行sql
    sql = "select * from admin"
    cursor.execute(sql)
    data_list = cursor.fetchall()

    # 3.关闭、
    cursor.close()
    conn.close()
    # print(data_list)
    return render_template('show_user.html',data_list=data_list)



if __name__ == '__main__':
    app.run()

前端原生代码实现

/add/user页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>添加用户</h1>
<form method="post" action="/add/user">
    <input type="text" name="user" placeholder="用户名">
    <input type="text" name="pwd" placeholder="密码">
    <input type="text" name="mobile" placeholder="手机号">
    <input type="submit" value="提 交">
</form>

</body>
</html>

/show/user页面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .title{
            display: flex;
            flex-direction: row;
            justify-content: space-around;

        }
        h1{
            color: orange;
        }
        .box1{
            display: flex;
            flex-direction: row;
            justify-content: space-around;
        }
        table{
            border: bisque 1px double;
            height: 300px;
        }
        td{
            width: 200px;
            border: bisque 1px double;
            background: #238a8e;
        }
        th{
            border: orangered 1px double;
            background: #a07c5f;

        }
        body{
            background: cornflowerblue;
        }
    </style>
</head>
<body>
    <div class="title">
        <h1>用户列表</h1>
    </div>
    <div class="box1">
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>账户</th>
                <th>密码</th>
                <th>手机号</th>
            </tr>
        </thead>
        <thead>
        {% for item in data_list%}
            <tr class="box2">
                <td>{{item.id}}</td>
                <td>{{item.username}}</td>
                <td>{{item.password}}</td>
                <td>{{item.mobile}}</td>
            </tr>
        {% endfor%}
        </thead>
    </table>
    </div>
</body>
</html>

小案例前后端交互效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/498584.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HCT:深度是我们没有的奢侈品

文章目录 Deep is a Luxury We Don’t Have摘要本文方法Efficient AttentionThe HCT Architecture Deep is a Luxury We Don’t Have 摘要 医学图像具有高分辨率。高分辨率对于早期发现恶性组织至关重要。然而&#xff0c;这一解决方案在建模长期依赖性方面提出了挑战。浅层t…

接口自动化测试的神器:使用Python编写高效的自动化测试工具

B站首推&#xff01;2023最详细自动化测试合集&#xff0c;小白皆可掌握&#xff0c;让测试变得简单、快捷、可靠https://www.bilibili.com/video/BV1ua4y1V7Db 目录 摘要&#xff1a; 安装工具&#xff1a; 测试脚本 编写python脚本 1.使用requests发送HTTP请求 2.使用py…

生产环境出现CPU占用过高,请谈谈你的分析思路和定位

假如生产环境出现CPU占用过高&#xff0c;请谈谈你的分析思路和定位 记一次印象深刻的故障&#xff1f; 结合Linux 和 JDK命令一起分析&#xff0c;步骤如下 使用top命令找出CPU占比最高的 ps -ef 或者 jps 进一步定位&#xff0c;得知是一个怎么样的后台程序出的问题 定位…

夏驰和徐策的解决数学问题思路——反证法

反证法是一种证明方法&#xff0c;它的基本思路是通过假设某个结论不成立&#xff0c;然后构造出一个矛盾的情况来推导出原先假设的结论是成立的。 具体来说&#xff0c;反证法一般包含以下步骤&#xff1a; 1. 假设所要证明的命题不成立。 2. 通过这个假设&#xff0c;构造…

网易云音乐开发--个人中心页效果实现

内网穿透 就是我们真机调试&#xff0c;是没有数据的 就是我们手机上去访问我们电脑上自己搭的服务器&#xff0c;肯定是访问不到的 此时就需要我们内网穿透 1.winR 输入 cmd 输入ipconfig 2.找到无线局域网适配器的IPv4 3.重新设置一个新的地址&#xff0c;只需将host中…

Snipaste介绍、安装、使用技巧(截图贴图工具)

一、简介 Snipaste 是一个简单但强大的截图贴图工具&#xff0c;也可以让你将截图贴回到屏幕上&#xff01;下载并打开 Snipaste&#xff0c;按下 F1 来开始截图&#xff0c;再按 F3&#xff0c;截图就在桌面置顶显示了。就这么简单&#xff01; 你还可以将剪贴板里的文字…

HTMLCxx 编译说明

1、编译库 下载htmlcxx之后&#xff0c;打开项目编译工程&#xff1a; 双击编译之后&#xff0c;会出现错误&#xff1a; 此时&#xff0c;双击定位到错误的位置&#xff1a; 去掉双引号&#xff0c;重新输入 "",编译通过 2、引用库解析数据 这时候会定位到当前的错…

双目测距--3 双目标定

目录 -1 流程说明&#xff1a; 0 几个重要 函数 1、calibrateCamera()函数 2、stereoCalibrate() 3、findChessboardCorners() 棋盘格角点检测 4、stereoRectify() 5、initUndistortRectifyMap() 6、remap() 1、用于标定的图像 2、标定前 3、OpenCV进行双目标定 单…

《基于多尺度特征提取的少样本脉搏波形轮廓分类》阅读笔记

目录 一、论文摘要 二、论文十问 Q1&#xff1a;论文试图解决什么问题&#xff1f; Q2&#xff1a;这是否是一个新的问题&#xff1f; Q3&#xff1a;这篇文章要验证一个什么科学假设&#xff1f; Q4&#xff1a;有哪些相关研究&#xff1f;如何归类&#xff1f;谁是这一课…

【c++】——string类

&#x1f331;码云&#xff1a;一条咸鱼 目录 &#x1f349;string类简介&#x1f349;string类的常用接口说明&#x1f353;string类对象常见构造函数&#x1f353;string类对象常见容量操作函数&#x1f353;string类对象访问及遍历操作函数&#x1f353;string类对象修改操作…

基于springboot的4S店车辆管理系统(源码等)

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&…

【面试系列】详细拆解Java、Spring、Dubbo三者SPI机制的原理

什么是SPI SPI全称为Service Provider Interface&#xff0c;是一种动态替换发现的机制&#xff0c;一种解耦非常优秀的思想&#xff0c;SPI可以很灵活的让接口和实现分离&#xff0c;让api提供者只提供接口&#xff0c;第三方来实现&#xff0c;然后可以使用配置文件的方式来…

面向开发人员的 ChatGPT 提示语教程 - ChatGPT Prompt Engineering for Developers

面向开发人员的 ChatGPT 提示语教程 - ChatGPT Prompt Engineering for Developers 1. 指南1-1. 提示的准则1-2. 配置1-3. 提示语原则原则 1: 写出清晰而具体的指示(原文: Write clear and specific instructions)技巧 1: 使用分隔符来清楚地表明输入的不同部分(原文: Use deli…

2022年NOC大赛编程马拉松赛道初赛图形化高年级A卷-正式卷,包含答案

目录 选择题: 下载打印文档做题: 2022NOC-图形化初赛高年级A卷正式卷 选择题: 1、答案:B 俄罗斯方块是一款风靡全球的益智小游戏,玩家通过移动、旋转和摆放不同造型的方块,使其排列成完整的一行或多行。请问如何旋转图中的蓝色方块,可以使它刚好放入虚线框中,消灭方块…

设计模式——责任链模式

是什么? 场景案例&#xff1a;假设我们现在在公司里面需要请假&#xff0c;那么如果请假的天数比较少&#xff0c;可以直接找组长请假&#xff0c;但是如果是一个星期这种假的话就还需要去找部门主管&#xff0c;如果是半个月以上的假的话就还需要去找副总经理甚至总经理请假…

win10安装Anaconda巨详细[更新于2023.5.7]

目录 一、Anaconda下载&#xff08;官网和清华源,更推荐清华源&#xff09; 1.1、Anaconda官网首页地址 1.2、清华源Anaconda地址 二、Anaconda安装 三、测试Anaconda是否安装配置成功 一、Anaconda下载&#xff08;官网和清华源,更推荐清华源&#xff09; 1.1、Anaconda…

烽火HG680-J_Hi3798MV100_内有普通版和高安版-当贝桌面-卡刷强刷固件包

烽火HG680-J_Hi3798MV100_内有普通版和高安版-当贝桌面-卡刷强刷固件包-内有短接图和教程 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精…

树【二叉树】与森林的相互转化与遍历

一、树与森林的相互转换 预备知识&#xff1a;孩子兄弟表示法。 代码编写出来&#xff1a; typedef struct CSNode{int data;struct CSNode *firstchild,*nextS; }CSNode; 解释&#xff1a;该结点的链域分别指向它的第一个孩子和它同级的兄弟。 &#xff08;一&#xff09;森…

【场景方案】我所遇到的有关前端文件上传的知识点归纳,欢迎大家来补充

文章目录 前言前后端传输的文件格式主要有哪些base64formData 前端上传方案input标签获取文件HTML5的API 切片上传大文件blob数据转成base64未来不间断补充 前言 本文章总结了本人在网上和实际公司项目中遇到的有关前端文件上传功能的知识点&#xff0c;如有更好的方案或者发现…