Django+mysql+bootstrap学习

news2024/11/24 8:31:38

python与mysql

创建表结构

create databse unicom DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
use unicom;

create table admin(
	id int not null auto_increment primary key,
	username varchar(16) not null,
	password varchar(64) not null,
	mobile char(11) not null
) default charset=utf8;

python+mysql

  • 在进行新增、删除、修改时,一定要记得commit,不然数据库没有数据。
  • 在查询时,不需要commit,执行fetchall/fetchone
cursor.excute("select ...")
 
#第一条数据,字典形式,无数据时空列表
v1 = cursor.fetchone()

#所有数据,列表套字典形式,无数据时是None
v1 = cursor.fetchall()
  • sql语句不要用python的字符串格式化进行拼接(会sql注入),一定要用excute+参数
import mysql

#1. 连接mysql
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="root123", charset='utf8', db="unicom")
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

#2. 发送指令
sql = "insert into admin(username,password,mobile) values(%s, %s, %s)"
cursor.execute(sql, ['rui','rui123','13333333333'])
conn.commit()

#3.关闭
cursor.close()
conn.close()

案例:Flask+Mysql+HTML

在这里插入图片描述

代码结构:
在这里插入图片描述

  1. 添加用户:将前端输入的内容添加到数据库中。

    注意: html中添加method

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我的demo </title>
</head>
<body>
<h1>添加用户</h1>
<form method="post" action="/user/add">
    <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>
from flask import Flask, render_template, request
import pymysql

#在当前文件下创建应用
app = Flask(__name__)

# 创建了网址/user/add和函数user_add的对应关系
# 以后用户在浏览器上访问/user/add,网站自动执行user_add

@app.route("/user/add", methods=["GET", "POST"])#装饰器,url,路由
def user_add():#视图函数
    if request.method == "GET":
        return render_template("user_add.html")

    username = request.form.get("user")
    password = request.form.get("pwd")
    mobile = request.form.get("mobile")

    # 1. 连接mysql
    conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="root", charset='utf8', db='unicom')
    cursor = conn.cursor()
    print("连接成功")

    # 2. 发送指令
    sql = "insert into admin(username,password,mobile) values(%s, %s, %s)"
    cursor.execute(sql, (username, password, mobile))
    conn.commit()

    # sql = "select * from admin"
    # cursor.execute(sql)
    # data = cursor.fetchone()


    # 3.关闭
    cursor.close()
    conn.close()

    return "success"


if __name__ == '__main__':
    app.run(debug=True)
  1. 展示用户信息

    注意: html文件中使用 {% for item in data_list %} 进行循环,{{ item.id }} 的方式获取键值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户列表</title>
    <link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1/css/bootstrap.css">
</head>
<body>
<div class="container">
    <h1>用户列表</h1>
    <table class="table table-bordered">
    <thead>
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>密码</th>
            <th>手机号</th>
        </tr>
    </thead>
    <tbody>
    {% for item in data_list %}
        <tr>
            <th>{{ item.id }}</th>
            <th>{{ item.username }}</th>
            <th>{{ item.password }}</th>
            <th>{{ item.mobile }}</th>
        </tr>
    {% endfor %}
    </tbody>
</table>
</div>


<script src="/static/js/jquery-3.6.4.min.js"></script>
<script src="/static/plugins/bootstrap-3.4.1/js/bootstrap.js"></script>
</body>
</html>
@app.route("/user/show")#装饰器,url,路由
def user_show():#视图函数

    # 1. 连接mysql
    conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="lvmeng135Ues!", charset='utf8', db='unicom')
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    print("连接成功")

    # 2. 发送指令
    sql = "select * from admin"
    cursor.execute(sql)
    data = cursor.fetchall()


    # 3.关闭

    cursor.close()
    conn.close()

    print(data)

# 1.找到html文件的特殊占位符,替换数据
# 2.将替换完成的字符串返回给用户的浏览器。

    return render_template("user_show.html", data_list=data)

在html的 head 中插入<link rel="stylesheet" href="/static/plugins/bootstrap-3.4.1/css/bootstrap.css"> ,body中插入<script src="/static/js/jquery-3.6.4.min.js"></script>
<script src="/static/plugins/bootstrap-3.4.1/js/bootstrap.js"></script> 使用bootstrap。

网页如图:

在这里插入图片描述

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

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

相关文章

Cesium源码分享--量算

Cesium量算插件 在线体验 gitee&#xff1a;https://gitee.com/caozl1132/CesiumExp-measure github&#xff1a;https://github.com/gitgitczl/CesiumExp-measure ps&#xff1a;如果可以的话&#xff0c;希望大家能给我个star&#xff0c;好让我有更新下去的动力&#xff1…

基于SSM的果蔬经营平台系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 前言…

Axure教程—动态多散点图(中继器)

本文将教大家如何用AXURE制作动态多散点图 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://w8j93u.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87817783 二、功能介绍 简单填写中继器内容即可生成动态多散点图样式…

ChatGpt国内免费网站大全+个人体会

目录 ChatGpt ChatGpt迭代历史 部分ChatGpt个人体会 ChatGpt合集 ChatGpt2步制作流程图与思维导图&#xff0c;你确定不来看一下吗? 当然&#xff0c;你可以自行注册使用ChatGpt&#xff08;亲测有效&#xff09; ChatGpt ChatGPT是由OpenAI开发的一种大型语言模型&#…

《The Element of Style》阅读笔记 —— 章节 II Elementary Principles of Composition

前言&#xff1a;本篇为书籍《The Element of Style》第二章的阅读笔记。 本书电子版链接&#xff1a;http://www.jlakes.org/ch/web/The-elements-of-style.pdf 章节 I Elementary Rules of Usage 阅读笔记&#xff1a;链接 Content II Elementary Principles of Composition…

这些脑洞大开的论文标题,也太有创意了O(∩_∩)O

microRNAs啊microRNAs&#xff0c;谁是世界上最致命的髓母细胞瘤microRNAs&#xff1f; 这个标题很容易让人联想到白雪公主后妈说的那句话&#xff1a;Mirror mirror on the wall, who is the fairest of them all? 02 一氧化碳&#xff1a;勇踏NO未至之境 NO 指 nitric oxide…

Spring Boot中使用Spring Batch处理批量任务

Spring Boot中使用Spring Batch处理批量任务 Spring Batch是Spring框架的一个模块&#xff0c;它提供了一组API和工具&#xff0c;用于处理批量任务。在本文中&#xff0c;我们将会介绍如何在Spring Boot中使用Spring Batch来处理批量任务。我们将会使用一个简单的示例来说明如…

在现有iOS项目中,接入新的Flutter项目或现有的Flutter项目

文章参考自Flutter官网&#xff1a;进入Flutter官网 目录 一、背景 二、在现有iOS项目中&#xff0c;接入新的Flutter工程 1、创建新的Flutter工程 2、将iOS工程与Flutter工程进行关联 三、在现有iOS项目中&#xff0c;接入现有的Flutter工程 1、修改Flutter工程中的pub…

如何提高程序员的代码质量?

作为一名程序员&#xff0c;我们需要不断学习、探索新的技术&#xff0c;以便编写出高质量、可维护、安全且高效的代码。但是&#xff0c;即使是经验丰富的程序员也容易遇到一些技术陷阱&#xff0c;这些陷阱可能会导致运行时错误、性能问题或安全漏洞。下面是一些程序员绝对不…

DSOL:一种快速的直接稀疏里程计方案

文章&#xff1a;DSOL: A Fast Direct Sparse Odometry Scheme 作者&#xff1a;Chao Qu, Shreyas S. Shivakumar, Ian D. Miller and Camillo J. Taylor 编辑&#xff1a;点云PCL 代码&#xff1a;https://github.com/versatran01/dsol.git 来源&#xff1a;arXiv2022 欢迎各位…

Elastic 发布 Elasticsearch Relevance Engine™ — 为 AI 革命提供高级搜索能力

作者&#xff1a;Matt Riley 今天我们将向大家介绍 Elasticsearch Relevance Engine™&#xff08;ESRE™&#xff09;&#xff0c;这是一种创建高度相关的 AI 搜索应用程序的新功能。ESRE 建立在 Elastic 在搜索领域的领导地位以及超过两年的机器学习研究和开发基础之上。Elas…

Java agent入门及demo示例(附源码)

这里是weihubeats,觉得文章不错可以关注公众号小奏技术&#xff0c;文章首发。拒绝营销号&#xff0c;拒绝标题党 背景 继之前我们研究了下skywalking是什么以及skywalking如何监控skywalking 我们并没有探讨过多的skywalking原理 实际上skywalking的实现原理就是java的agent…

Android 12系统源码_窗口管理(一)WindowManagerService的启动流程

前言 WindowManagerService是Android系统中重要的服务&#xff0c;它是WindowManager的管理者&#xff0c;WindowManagerService无论对于应用开发还是Framework开发都是重要的知识点&#xff0c;究其原因是因为WindowManagerService有很多职责&#xff0c;每个职责都会涉及重要…

RabbitMQ发送方确认机制

1、前言 RabbitMQ消息首先发送到交换机&#xff0c;然后通过路由键【routingKey】和【bindingKey】比较从而将消息发送到对应的队列【queue】上。在这个过程有两个地方消息可能会丢失&#xff1a; 消息发送到交换机的过程。消息从交换机发送到队列的过程。 而RabbitMQ提供了…

中国移动董宁:深耕区块链的第八年,我仍期待挑战丨对话MVP

区块链技术对于多数人来说还是“新鲜”的代名词时&#xff0c;董宁已经成为这项技术的老朋友。 董宁2015年进入区块链领域&#xff0c;现任中国移动研究院技术总监、区块链首席专家。作为“老友”&#xff0c;董宁见证了区块链技术多个爆发式增长和平稳发展的阶段&#xff0c;…

基于STC8G1K08A的水压检测系统

基于STC8G1K08A的水压检测系统 前言先来一饱眼福设计和硬件的选型压力传感器选择单片机的选择WIFI透传模块选择 核心代码的开发STC8G1K08A单片机代码读取水压传感器的电压计算对应电压水的压力值猪场水压正常、漏水、喝光水提醒功能的实现 数据通过ESP8266上报到云端代码的实现…

低功耗定时器(LPTIMER)

概述 LPTIM 是运行在Always-On 电源域下的16bits 低功耗定时/计数器模块。通过选择合适的工作时钟&#xff0c;LPTIM 在在各种低功耗模式下保持运行&#xff0c;并且只消耗很低的功耗。LPTIM 甚至可以在没有内部时钟的条件下工作&#xff0c;因此可实现休眠模式下的外部脉冲计数…

新手怎么玩转Linux

Linux是一个非常强大、灵活和可定制的操作系统&#xff0c;这使得它成为了程序员的首选操作系统之一。程序员喜欢使用Linux的原因有以下几点&#xff1a;开源、稳定性、安全性、命令行界面、社区支持。那么新手改如何玩转Linux呢&#xff1f;跟着我一起来看看吧。 以下是对新…

Meta 开源语音 AI 模型支持 1,100 多种语言

自从ChatGPT火爆以来&#xff0c;各种通用的大型模型层出不穷&#xff0c;GPT4、SAM等等&#xff0c;本周一Meta 又开源了新的语音模型MMS&#xff0c;这个模型号称支持4000多种语言&#xff0c;并且发布了支持1100种语言的预训练模型权重&#xff0c;最主要的是这个模型不仅支…

行业报告 | 2022文化科技十大前沿应用趋势(上)

文 | BFT机器人 前言 Introduction 文化科技是文化科技融合过程中诞生的系列新技术成果&#xff0c;是文化强国和科技强国两大战略的交又领域。2012 年 8月&#xff0c;科技部会同中宣部、财政部、文化部、广电总局、新闻出版总署发布《文化科技创新工程纲要》&#xff0c;开启…