基于mysql的web_app的python 开发日志【day1】

本文详细介绍如何配置Python开发环境,包括安装Anaconda、Git、MySQL等工具,以及如何使用aiohttp、jinja2和aiomysql等异步框架和库。适合初学者快速上手Python Web开发。
部署运行你感兴趣的模型镜像

 

1首先配置环境,

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432170937506ecfb2f6adf8e4757939732f3e32b781c000

  • 查找对应的python版本,安装anaconda。
  • 然后安装Git,参考以下两个博客,建立本地仓库,并完成远程同步。

https://blog.youkuaiyun.com/qq_37838568/article/details/81053055?utm_source=blogxgwz1

https://www.cnblogs.com/mjbin/p/5820942.html

  • 安装mysql,建议直接安装windows x64.msi后缀的文件,官网如下。

https://dev.mysql.com/downloads/mysql/5.6.html

  • 安装异步框架aiohttp(cmd运行下同):
pip install aiohttp
  • 安装前端模板引擎jinja2:
pip install jinja2
  • 安装MySQL的Python异步驱动程序aiomysql:
pip install aiomysql

2,了解几个框架

  • aiohttp,用作异步IO操作,如读写文件、发送网络数据时,不需要等待IO操作完成就能先干别的,最后在IO完成后在回来接着干,因为普通程序都是同步的,所以需要aiohttp来实现异步。

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320981492785ba33cc96c524223b2ea4e444077708d000

  • jinja2,是一个python下的前端模板引擎,是一个web模板语言

https://www.cnblogs.com/franknihao/p/7149499.html

  • aiomysql,MySQL的Python异步驱动程序aiomysql:

 

 

 

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 1. 汽车租赁系统的基本架构设计 构建一个汽车租赁系统需要明确系统的功能需求和技术栈选择。根据提供的引用信息,系统将采用Python作为后端开发语言,并结合Flask框架[^1]实现业务逻辑处理。数据库方面,选择MySQL 5.7版本以确保兼容性和性能优化[^3]。 系统的主要功能模块包括用户管理、车辆管理、订单管理以及支付功能等。以下是系统的基本架构设计: - **前端**:可以使用HTML、CSS、JavaScript以及Vue.js来实现用户界面交互。 - **后端**:基于Flask框架开发API接口,用于处理用户的请求并返回数据。 - **数据库**:使用MySQL存储系统中的用户信息、车辆信息、订单记录等数据。 --- ### 2. 数据库设计 在MySQL中设计数据库表时,需要考虑以下几个关键表: #### (1) 用户表 (`users`) ```sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, email VARCHAR(100), phone VARCHAR(15), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` #### (2) 车辆表 (`vehicles`) ```sql CREATE TABLE vehicles ( id INT AUTO_INCREMENT PRIMARY KEY, model VARCHAR(50) NOT NULL, brand VARCHAR(50) NOT NULL, price_per_day DECIMAL(10, 2), availability BOOLEAN DEFAULT TRUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` #### (3) 订单表 (`orders`) ```sql CREATE TABLE orders ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, vehicle_id INT NOT NULL, rental_start DATE NOT NULL, rental_end DATE NOT NULL, total_price DECIMAL(10, 2), status ENUM('pending', 'confirmed', 'completed') DEFAULT 'pending', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id), FOREIGN KEY (vehicle_id) REFERENCES vehicles(id) ); ``` 上述表结构支持基本的用户注册、车辆管理和订单创建功能[^4]。 --- ### 3. Flask后端开发 以下是一个简单的Flask应用示例,展示如何通过API接口与MySQL数据库进行交互。 #### (1) 安装依赖 确保安装了必要的库: ```bash pip install flask pymysql ``` #### (2) 初始化Flask应用 ```python from flask import Flask, request, jsonify import pymysql app = Flask(__name__) # MySQL连接配置 db = pymysql.connect( host="localhost", user="root", password="password", database="car_rental_system", cursorclass=pymysql.cursors.DictCursor ) @app.route('/vehicles', methods=['GET']) def get_vehicles(): cursor = db.cursor() cursor.execute("SELECT * FROM vehicles WHERE availability = TRUE") vehicles = cursor.fetchall() return jsonify(vehicles) @app.route('/rent', methods=['POST']) def rent_vehicle(): data = request.json user_id = data.get('user_id') vehicle_id = data.get('vehicle_id') rental_start = data.get('rental_start') rental_end = data.get('rental_end') cursor = db.cursor() cursor.execute(""" INSERT INTO orders (user_id, vehicle_id, rental_start, rental_end, status) VALUES (%s, %s, %s, %s, 'pending') """, (user_id, vehicle_id, rental_start, rental_end)) db.commit() # 更新车辆状态为不可用 cursor.execute("UPDATE vehicles SET availability = FALSE WHERE id = %s", (vehicle_id,)) db.commit() return jsonify({"message": "Rental request submitted successfully!"}) if __name__ == '__main__': app.run(debug=True) ``` 上述代码展示了如何通过Flask API获取可用车辆列表和提交租车请求。 --- ### 4. 系统部署与测试 完成开发后,可以通过以下步骤进行系统部署和测试: 1. 使用PyCharm或其他IDE进行代码编写和调试[^1]。 2. 在本地环境中使用Navicat工具连接MySQL数据库,验证表结构和数据插入是否正确[^2]。 3. 使用Postman或类似的工具测试API接口的功能。 4. 部署到生产环境时,可以选择Gunicorn或uWSGI作为WSGI服务器,并使用Nginx作为反向代理。 --- ### 5. 系统扩展与优化 为了提高系统的性能和用户体验,可以考虑以下扩展功能: - **身份认证**:集成JWT(JSON Web Token)实现用户登录和权限管理。 - **支付功能**:集成第三方支付网关(如Stripe或PayPal)以支持在线支付。 - **实时通知**:使用WebSocket技术实现订单状态的实时更新。 - **数据分析**:利用SQL查询分析用户的租车偏好和车辆使用情况,为业务决策提供支持[^5]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值