当前位置: 首页 > news >正文

利用python编写后端程序 通用代码详解 项目实现

前言        

最近自己正好有时间,想要自己搭建微信小程序,也正好记录一下自己的搭建过程和内容。

搭建准备工作 

这里我使用的时pycharm编辑器。在后端开发中,我们需要三个库:

import pymysql
from flask import request, Flask, jsonify
from flask_cors import CORS

连接数据库方法

# 连接数据库
# db = pymysql.connect(host='连接数据库的ip地址',port='端口', user='用户名', password='密码', db='连接的数据库')
db = pymysql.connect(host='127.0.0.1', user='root', password='123456', db='sql_tp')
print(db.port)
cursor = db.cursor()  # 指定数据库指针

启动后端方法

#  启动后端
app = Flask(__name__)
CORS(app, resources=r'/*')  # 解决跨域问题

post和get请求方法

请求的方法基本就是这样,通过组合能实现不同的请求,不拘泥于形式。

# ------------------------------------------------------------------------------------
# ---------------------------------------测试使用方法-----------------------------------
# 接受post请求,收到值返回说明
@app.route('/url', methods=['POST'])
# 后端接口的入口,使用POST方法 比如进入在boot下的word表,可以设“/boot/word”
def func():  # 接口触发做的事情if request.method == "POST":  # 判断是不是post请求username = request.form.get("username")  # 接受前端的参数# t = [t1,t2,t3,t4,t5,t6,t7,t8,t9,t10]t = [1,2,3,1,2,3,1,2,3,1] # 假设接受了多个数据放到t列表中vales = ""for n,i in enumerate(t):  # 将vales变成字符串,就是将t中的数据连接做成sql。if n != len(t)-1:vales = vales+str(i)+","else:vales = vales + str(i)try:sql = "insert into wjy_xcx_tmp value ("+vales+");"   # 插入sql语句。cursor.execute(sql)  # 在后端执行的sql语句cursor.execute("commit;")  # 在后端执行的sql语句cursor.execute("select count(*) from wjy_xcx_tmp;")  # 在后端执行的sql语句date = cursor.fetchone()  # 获取所有查询到的记录,fechaone()返回一条print(date)return jsonify(date) # 返回sql查询出的数据。except Exception as e:return "-1"# return jsonify([]) 返回json数组
# ------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------#  login登录操作,返回数据库查询到的密码并返回(已完成返回密码操作)
@app.route('/my_system/login', methods=["POST"])  # 使用POST请求
def login():if request.method == 'POST':phone = request.form.get("phone")# 做异常测试try:# 发送数据库cursor.execute("select 密码 from tp_ghao20221230 where 手机号=" + str(phone))data_login = cursor.fetchone()  # 返回第一条查询信息if data_login != None:return jsonify(data_login)  # 号码查找到密码,返回密码else:return '1'  # 数据库未查询到,返回1except Exception as e:print("failed:", e)return '-1'  # 登录操作异常,返回-1#  修改密码操作(已完成修改密码操作)
@app.route('/my_system/login/update', methods=["POST"])  # 使用POST请求
def login_update():if request.method == 'POST':phone = request.form.get("phone")login_password = request.form.get("login_password")# 做异常测试try:# 发送数据库cursor.execute("update tp_ghao20221230 set 密码=\"" + str(login_password) + "\" where 手机号=" + str(phone))db.commit()return '1'  # 完成修改密码操作,返回1except Exception as e:print("failed:", e)return '-1'  # 未完成修改操作,返回-1

主函数

if __name__ == '__main__':app.run(host='0.0.0.0', port=自己定义的接口)  # 启动后端服务器,定义接口,监听端口;0.0.0.0表示都可以访问的地址。db.close()

总结

全部代码可以直接将所有代码放在一起就是一个python的后端程序了。实现起来还是比较简单的。大家可以通过修改sql和部分代码实现自己的python后端。

相关文章:

  • ReadWriteLock 和 StampedLock 的比较与解析
  • 人体姿态估计算法
  • 电商营销场景的RocketMQ实战01-RocketMQ原理
  • python初始化矩阵相关
  • Flask使用线程异步执行耗时任务
  • 【keepalived】高可用神器,实现应用的自动主备切换
  • 【网络奇缘】- 计算机网络|分层结构|深入学习ISO模型
  • 怎么检测电脑电源?电脑电源检测系统软件如何助力?
  • 云轴科技ZStack助力龙芯打造IT产业新生态
  • DAPP开发【11】IPFS星际文件管理系统
  • 分享一个Python网络爬虫数据采集利器
  • InST论文复现
  • python进行文件批量命名
  • Istio可观测性
  • leetcode 1658. 将 x 减到 0 的最小操作数(优质解法)
  • 0基础学习移动端适配
  • 11111111
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • angular学习第一篇-----环境搭建
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • java8-模拟hadoop
  • JavaScript 奇技淫巧
  • JavaScript-Array类型
  • Java多态
  • Java教程_软件开发基础
  • MySQL QA
  • PaddlePaddle-GitHub的正确打开姿势
  • react-native 安卓真机环境搭建
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • yii2中session跨域名的问题
  • Zsh 开发指南(第十四篇 文件读写)
  • 简单基于spring的redis配置(单机和集群模式)
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 驱动程序原理
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 算法之不定期更新(一)(2018-04-12)
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 进程与线程(三)——进程/线程间通信
  • #define与typedef区别
  • (C语言)fread与fwrite详解
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (接口封装)
  • (九十四)函数和二维数组
  • (十)T检验-第一部分
  • (十六)一篇文章学会Java的常用API
  • (算法)Game
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Reactor简单使用教程
  • .NET 设计模式初探
  • @Resource和@Autowired的区别
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解