大淘客构建自己的网站,优质服务的网站设计制作,wordpress如何禁止注册,禄劝彝族苗族网站建设AI 编程的世界#xff1a;用Cursor编写评分项目 今天是2024年的最后一天#xff0c;祝大家在新的一年#xff0c;健康开心快乐#xff01; 岁末之际#xff0c;星辰为伴#xff0c;灯火长明#xff0c;我终于在 2024 年的最后一天成功上线了 AI 编程项目。回首这一年用Cursor编写评分项目 今天是2024年的最后一天祝大家在新的一年健康开心快乐 岁末之际星辰为伴灯火长明我终于在 2024 年的最后一天成功上线了 AI 编程项目。回首这一年那些与代码鏖战的日夜、攻克难题的瞬间都化作此刻内心的满足与安宁。感谢这一年来努力奔跑、不曾放弃的自己所有的汗水与坚持都在今日结成了最美的果实。新岁将启愿未来的路上继续心怀热爱奔赴下一场山海书写更多篇章 本项目的创意最初源自一位朋友的构想目标是构建一个评委评分系统。值得一提的是在整个项目开发进程中我未手动编写任何一行代码而是完全依赖于与多种人工智能工具如 o1、Cursor、豆包等的交互协作来达成项目目标。经过多日持续不懈的调试与优化工作项目最终成功部署于腾讯云服务器之上得益于腾讯云所提供的为期一个月的免费服务器资源并且额外花费 15 元在腾讯云平台上购置了域名 aibobo.tech。项目访问方式如下您既能够通过域名访问访问也可以直接使用 IP访问访问项目。各位可以进行测试体验自已下载项目源码进行部署管理员账号为 admin密码为 admin123。管理员登录后在数据初始化中下载模块在这个模块中我已让AI生成了一些模拟数据下载后可以直接导入进行数据初始化。有关项目的详细功能介绍请见下文。项目源码地址项目源码,小程序已调试通过正在审核。 在使用 Cursor 进行编程辅助的过程中发现其存在一定的不稳定性问题。例如有时会出现代码丢失的情况原本长达 1K 多行的代码经其处理后仅剩下百余行着实令人惊出一身冷汗。此外对于一些原本能够正常执行的功能代码经 Cursor 再次编辑后会出现诸如 403、500 等错误状态。基于此在使用过程中建议采用以下提示词来优化与 Cursor 的交互以提升代码生成的准确性和稳定性。
在开发新功能前,我需要:
1. 理解现有架构 - 查看相关模块的代码实现 - 分析代码组织方式和设计模式 - 理解数据流转和状态管理 - 确认现有的工具和方法
2. 确认开发规范 - 检查相似功能的实现方式 - 遵循项目的命名规范 - 保持代码风格一致 - 复用现有组件和工具
3. 开发步骤 - 先写类型定义 - 实现核心逻辑 - 添加错误处理 - 进行功能测试
4. 如果遇到问题 - 查看相似功能的实现 - 不随意修改现有代码 - 保持架构的一致性 - 完整测试后再提交。提示词举例
1、基于pythonflask设计的web程序界面现代风格同时兼容手机浏览在手机上能正常美观显示。
2、设计一个评分系统管理员帐号登录可以对数据管理评委登录进去可以选择组只能对分配的组的被评人进行评分分数值在0到100分数提交后不能重新再评分重新再选择组继续对被评人评分。
3、有各表的管理页面包括添加、编辑和删除对于评委以及被评人数据量大的可以通过电子表格直接上传添加。
4、有评分统计对于每一个被评分对象给出一个二维表显示各评委的打分以及最后所得平均分可以导出为电子表格。项目介绍
这是一个基于Flask和微信小程序的评分系统主要用于组织评委对参评人员进行打分评估。系统分为Web管理端和微信小程序评委端两部分。
主要功能
Web管理端
用户管理管理员可以添加、编辑、删除评委账号分组管理创建和管理不同的评分分组成员管理添加、编辑、删除待评分成员数据导入支持Excel批量导入评委和待评分成员数据评分统计查看所有评分数据支持按学段、学科筛选数据导出支持导出评分统计数据到Excel
小程序评委端
评委登录评委使用账号密码登录分组查看查看自己所在的评分分组评分功能对分组内的成员进行打分评分进度实时显示评分进度
部署指南
1. 服务器环境准备
# 更新系统
sudo apt update
sudo apt upgrade -y# 安装必要的系统包
sudo apt install -y python3-pip python3-venv nginx mysql-server mysql-client libmysqlclient-dev# 安装SSL所需的包
sudo apt install -y certbot python3-certbot-nginx2. 创建项目目录和虚拟环境
# 创建项目目录
sudo mkdir -p /var/www/rating_system
cd /var/www/rating_system# 创建并激活Python虚拟环境
python3 -m venv venv
source venv/bin/activate# 创建项目所需目录
#这里直接上传项目整个目录压缩文件3. 项目文件部署
项目文件压缩之前导出所用模块可参考
# 这里注意项目打包时导出完整的模块 激活本地项目的虚拟环境在项目目录下导出模块 虽然这样有时程序运行好似还缺模块根据错误提示再pip一下
E:\rating_system\.venv\Scriptsactivate.bat
pip freeze requirements.txt将项目压缩
# 上传项目文件压缩包将项目文件压缩文件解压到指定目录
sudo apt-get install p7zip-full
7z x rating_system.7z
# 安装项目依赖
pip install -r requirements.txt
pip install gunicorn4. 配置MySQL数据库
# 启动 MySQL
sudo systemctl start mysql
sudo systemctl enable mysql# 设置 root 密码
sudo mysql_secure_installation# 登录 MySQL
sudo mysql -u root -p# 在 MySQL 中执行以下命令
CREATE DATABASE rating_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER rating_userlocalhost IDENTIFIED BY 你设置的密码;
GRANT ALL PRIVILEGES ON rating_system.* TO rating_userlocalhost;
FLUSH PRIVILEGES;
exit;# 数据库进行初始化在mysql shell下运行项目目录下的create_database.sql
# 切换到项目目录
cd /var/www/rating_system# 使用MySQL命令执行SQL文件
sudo mysql -u root -p rating_system create_database.sql
# 验证数据库是否创建成功
# 登录MySQL
mysql -u rating_user -p# 在MySQL中执行以下命令
use rating_system;
show tables; # 查看是否创建了所有表
select * from user; # 检查管理员用户是否创建成功
exit;
5. 配置环境变量
# 项目根目录下创建.env文件
cd /var/www/rating_system
vim .env# 添加以下内容
MYSQL_HOSTlocalhost
MYSQL_PORT3306
MYSQL_USERrating_user
MYSQL_PASSWORDyour_password
MYSQL_DATABASErating_system
JWT_SECRETyour_jwt_secret_key
SECRET_KEYyour_flask_secret_key# 设置文件权限
chmod 600 .env6. 配置Gunicorn
创建Gunicorn服务文件
sudo vim /etc/systemd/system/rating_system.service服务文件内容
[Unit]
DescriptionRating System Gunicorn Service
Afternetwork.target[Service]
Userubuntu
Groupubuntu
WorkingDirectory/var/www/rating_system
EnvironmentPATH/var/www/rating_system/venv/bin
ExecStart/var/www/rating_system/venv/bin/gunicorn -w 4 -b 0.0.0.0:4262 app:app
Restartalways[Install]
WantedBymulti-user.target
启动服务
# 重新加载 systemd 配置
sudo systemctl daemon-reload
sudo systemctl start rating_system
sudo systemctl enable rating_system7. 配置Nginx
创建Nginx配置文件
sudo vim /etc/nginx/sites-available/rating_system配置文件内容
# HTTP - 重定向到HTTPS
server {listen 80; # 监听80端口HTTPserver_name www.aibobo.tech aibobo.tech; # 指定域名支持带www和不带www的访问return 301 https://$server_name$request_uri; # 301永久重定向到HTTPS
}# HTTPS
server {listen 443 ssl; # 监听443端口启用SSLserver_name www.aibobo.tech aibobo.tech; # 指定域名# SSL证书配置ssl_certificate /etc/letsencrypt/live/www.aibobo.tech/fullchain.pem; # SSL证书文件ssl_certificate_key /etc/letsencrypt/live/www.aibobo.tech/privkey.pem; # SSL私钥文件# SSL安全参数ssl_protocols TLSv1.2 TLSv1.3; # 只允许TLS 1.2和1.3ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-CHACHA20-POLY1305; # 加密算法ssl_prefer_server_ciphers on; # 优先使用服务器的加密算法ssl_session_cache shared:SSL:10m; # SSL会话缓存ssl_session_timeout 10m; # SSL会话超时时间# API 路由location / {# 反向代理设置proxy_pass http://127.0.0.1:4262; # 转发到Flask应用proxy_http_version 1.1; # 使用HTTP 1.1proxy_set_header Upgrade $http_upgrade; # WebSocket支持proxy_set_header Connection upgrade; # WebSocket支持# 请求头设置proxy_set_header Host $host; # 传递原始主机名proxy_set_header X-Real-IP $remote_addr; # 传递真实IPproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 传递代理链路proxy_set_header X-Forwarded-Proto $scheme; # 传递协议类型# CORS头部设置add_header Access-Control-Allow-Origin * always; # 允许所有来源add_header Access-Control-Allow-Methods GET, POST, OPTIONS always; # 允许的HTTP方法add_header Access-Control-Allow-Headers DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization always; # 允许的请求头# OPTIONS请求特殊处理if ($request_method OPTIONS) {add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Methods GET, POST, OPTIONS;add_header Access-Control-Allow-Headers DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization;add_header Access-Control-Max-Age 1728000; # 预检请求缓存时间add_header Content-Type text/plain charsetUTF-8;add_header Content-Length 0;return 204; # 返回无内容状态码}}
} 创建符号链接
sudo ln -s /etc/nginx/sites-available/rating_system /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx8. 配置SSL证书
# 安装SSL证书
sudo certbot --nginx -d your_domain.com# 自动续期证书
sudo certbot renew --dry-run9. 文件权限设置
# 设置目录权限
sudo chown -R www-data:www-data /var/www/rating_system
sudo chmod -R 755 /var/www/rating_system10、访问测试
在浏览器访问 http://服务器IP:4262 应该能看到管理后台登录界面默认管理员账号 用户名admin密码admin123
11、小程序配置 在微信开发者工具中 点击右上角【详情】在【本地设置】中勾选【不校验合法域名…】选项这样可以在开发阶段使用 IP 地址
常用的操作命令
以下是我在项目部署过程中使用的一些命令
# 赋予权限
sudo chmod -R 777 /var/www/rating_system/*
# 删除
rm /var/www/rating_system/rating_system.tar
# 更改路径写的权限 为所有者添加写权限
chmod uw /var/www/rating_system
# 为所有者、组用户和其他用户添加写权限
chmod aw /var/www/rating_system
# 打包/var/www/rating_system 将此目录下的venv目录除外
tar --excludevenv -cvf rating_system.tar /var/www/rating_system
# 强制删除目录
rm -rf /var/www/rating_system
# 将压缩文件解压到指定目录
sudo apt-get install p7zip-full
7z x rating_system.7z维护建议
定期备份数据库
# 创建备份脚本
#!/bin/bash
backup_dir/var/backups/rating_system
date_format$(date %Y%m%d_%H%M%S)
mysqldump -u rating_user -p rating_system $backup_dir/backup_$date_format.sql监控系统日志
# 检查应用日志
tail -f /var/www/rating_system/logs/flask_app.log# 检查Nginx日志
tail -f /var/log/nginx/error.log定期更新依赖包
pip install --upgrade -r requirements.txt技术栈 后端Python Flask 数据库MySQL 前端微信小程序 Web端Bootstrap jQuery 服务器Nginx Gunicorn
重置Cursor试用
解决Cursor在免费订阅期间出现以下提示的问题: Too many free trial accounts used on this machine. Please upgrade to pro. We have this limit in place to prevent abuse. Please let us know if you believe this is a mistake.
1、https://github.com/yuaotian/go-cursor-help