# ProjectBwim **Repository Path**: yiyang-tony/project-bwim ## Basic Information - **Project Name**: ProjectBwim - **Description**: bwin数据展示 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-28 - **Last Updated**: 2022-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 桥梁动态称重系统技术文档 - **该系统包含** - 用户:注册、登录、找回密码、权限管理、用户管理。 - 数据:查询数据、动态刷新、分页、搜索。 ## 1.数据库生成 - 依次执行 1. ```flask db init``` ,初始化数据库迁移脚本。 2. ```flask db migrate```,数据库迁移。 3. ```flask db upgrade``` ,生成数据库。 - 执行成功出现如下画面 ![image-20220310152445180](https://gitee.com/yiyang-tony/project-bwim/raw/master/static/images/image-20220310152445180.png) - 其表结构可以在project-bwim项目中的models/model.py中查看,也可在终端打开数据库,使用sql命令查看数据库。如图: ![image-20220310153114605](https://gitee.com/yiyang-tony/project-bwim/raw/master/static/images/image-20220310153114605.png) ## 2.bwim数据采集端 1. 通过bwim主程序获取车辆数据和车辆图片,以下数据存入数据表result中,后期图片数据请存入picture表中。bridgeID请使用测站名称代替。![image-20220310151733902](https://gitee.com/yiyang-tony/project-bwim/raw/master/static/images/image-20220310151733902.png) ## 3.web配置 - web启动端配置请在project-bwim/config.py文件中查看。 ### 3.1部署 - 远程连接树莓派 - 切换root用户:```su root``` 密码:**root**。 - 安装 Python 虚拟环境,安装虚拟环境命令``` $ sudo pip install virtualenv``` - 创建项目文件夹``` $ sudo mkdir myproject``` - 对 myproject 文件夹进行提权 `$ sudo chmod 777 myproject`,赋予可读可写可执行的权限 - 创建虚拟环境 ```$ virtualenv venv```(虚拟环境名称) - 进入/退出虚拟环境``` $ source venv/bin/activate,$ deactivate``` - 安装本地启动flask应用 - 进入虚拟环境,安装flask相关的环境依赖包。```pip3 install -r requirements.txt``` - ```python app.py```启动应用,能正常启动往下走。 - 安装**nginx**和**uwsgi web**服务器 - ```sudo apt install nginx uwsgi``` - Nginx 安装完成后,还需要配置才能访问 `sudo vim /etc/nginx/sites-available/default` - ```yaml server { listen 80; # 要填写最大传输大小,不然默认是1兆 client_max_body_size 1024m; server_name raspberry; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:5000; } } ``` - 保存退出后,启动 Nginx 服务 `sudo /etc/init.d/nginx start` - **配置uwsgi** - 首先从码云上(gitee.com)上克隆开发好的工程项目至```myproject```项目文件夹。 - **在项目文件夹下**,```cd project-bwim```创建并编辑 uWSGI 的配置文件 `sudo vim uwsgi.ini` - ``` [uwsgi] #uwsgi启动时所使用的地址与端口 socket = 127.0.0.1:5000 #虚拟环境目录 home = /root/venv/venv #项目目录 pythonpath = /root/venv/project-bwim/ #指向网站根目录 chdir = /root/venv/project-bwim/ #python启动程序文件 wsgi-file = app.py #python程序内用于启动的application变量名 callable = app # 线程id pidfile = /root/venv/project-bwim/logs/uwsgi.pid #日志 daemonize = /root/venv/project-bwim/logs/uwsgi.log #处理器数 processes = 4 #线程数 threads = 2 ``` - 启动 - 守护运行(后台)模式启动 uwsgi 服务器 `uwsgi -d --ini uwsgi.ini` - 访问服务,局域网内的其他设备在浏览器中输入树莓派的 IP 地址即可 ## 4.已部署后需要更新的操作步骤 1. 使用root用户连接到树莓派上。 2. ```ps -ef | grep uwsgi```查看uwsgi服务器进程,然后关闭它,使用命令 ```kill -9 pid号``` 3. 进入项目目录 1. **先备份数据库**,再进行操作,切记! 2. 按如下指令操作。 3. ```linux root@raspbian:~# cd venv/project-bwim/ root@raspbian:~/venv/project-bwim# cp bwim.db /root/venv/bwim.db root@raspbian:~/venv/project-bwim# cd .. root@raspbian:~/venv# rm -rf project-bwim/ root@raspbian:~/venv# git clone https://gitee.com/yiyang-tony/project-bwim.git Cloning into 'project-bwim'... remote: Enumerating objects: 146, done. remote: Counting objects: 100% (146/146), done. remote: Compressing objects: 100% (138/138), done. remote: Total 146 (delta 56), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (146/146), 1.84 MiB | 83.00 KiB/s, done. Resolving deltas: 100% (56/56), done. root@raspbian:~/venv# ps -ef | grep uwsgi root 28498 24911 0 16:26 pts/0 00:00:00 grep uwsgi root@raspbian:~/venv# cp bwim.db project-bwim/bwim.db root@raspbian:~/venv# cp uwsgi.ini project-bwim/uwsgi.ini root@raspbian:~/venv# uwsgi --ini project-bwim/uwsgi.ini [uWSGI] getting INI configuration from project-bwim/uwsgi.ini ``` 4. 以上流程过后会启动web服务,后期如果要更改项目目录或者启动信息,请重新编写uwsgi.ini配置文件。 5. 启动之后,web不能正常运行请查看```porject-bwim/logs/uwsgi.log```文件 ## 5.web应用功能 1. 登录页面,没有账号需要先注册账号,注册授权码在项目配置文件中查看,本文提到的配置文件共三个,项目配置文件、uwsgi.ini容器配置文件、nginx配置文件。后面两个配置文件一般不用修改。 2. 已有账号可以直接登录,不记得密码可以点击忘记密码来修改密码。 - ![image-20220311081217798](https://gitee.com/yiyang-tony/project-bwim/raw/master/static/images/image-20220311081217798.png) 3. 管理员注册时,请先在配置文件将管理员的邮箱修改好,再进行注册。否则注册为普通用户。下面为管理员用户界面,比普通用户多一个管理用户的功能。 1. ![image-20220311081659429](https://gitee.com/yiyang-tony/project-bwim/raw/master/static/images/image-20220311081659429.png) 4. 进入到页面之后,页面数据每隔1s会自动刷新,如果想要停止刷新,请点击搜索按钮,如果想回到刷新数据模式,请点击导航栏重车查询。 5. 点击管理用户,可进入用户管理页面。下图圈出来的部分都是可以点击的。 ![image-20220311082711519](https://gitee.com/yiyang-tony/project-bwim/raw/master/static/images/image-20220311082711519.png)