# flask_use **Repository Path**: HITWH-RJGC/flask_use ## Basic Information - **Project Name**: flask_use - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 后端 flask 开发1 ## 开发环境 ### 安装python3,pip3,flask sudo pip3 install PyMySQL ### 启动和调试模式 export FLASKAPP=hello.py export FLASKENV=development flask run ### 数据库Flask-SQLAlchemy2 1. sudo apt install sqlite #本项目选择mysql 不用这个了 2. [NO MODULE NAMED \_SQLITE3](https://blog.csdn.net/C_chuxin/article/details/82960824)#也不用这个了 3. sudo apt-get install mysql-server mysql-client 4. sudo service mysql status|start|stop|restart ## 开发进程-第一次迭代 ### 创建应用目录结构3 1. 创建.gitignore 2. 创建flaskuse 目录存放源代码 3. 创建tests 目录用于存放测试文件 4. 创建setup.py 自动化安装脚本 5. flask run执行后自动生成instance 目录 6. 创建runtest.sh 并赋予执行权限,用于启动测试 ### 项目配置4 1. 修改 init.py 增加导入配置 2. 设置默认配置文件flaskuse.settings 3. 设置开发测试配置文件夹instance/conf - devconfig.py 开发配置文件 - testconfig.py 测试配置文件 4. 通过export FLASKCONF="conf/devconfig.py"指定 ### 配置数据库5 1. 在devconfig.py 中写入配置项 2. 默认使用mysql 数据库 ### 使用蓝图和视图6 1. 创建flaskuse/pages 目录 2. 创建pages/\_init\_.py 中initapp 用于注册页面 3. 创建pages/show.py 建立页面show 的返回函数show 4. 在flaskuse/\_init\_.py 中调用pages/\_init\_.py ### flasksqlalchemy 数据库交互 1. 使用SQLAlchemy 反射获取表7 1. 在show.py 页面函数中从数据库中获取所有表信息 2. 循环读取出每个表中数据到字典数组cards 3. 按照时间降序排列新闻 4. 转换为json 并返回 2. 执行sql 命令8 ## 开发进程-第二次迭代 ### 添加信息查询功能 ### Flask-SQLALcheny 检索数据库9 ### Flask 接受POST 请求10 ### 多关键字模糊查询 1. 对接收到的查询字串用空格分割11 2. 拼接sql 模糊查询语句12 3. 查询并返回 ## 部署 ### 前后连接 1. Flask-Vue前后端分离13 2. 使用 Flask 和 Vue.js 来构建全栈单页应用14 3. flask 与 vue.js 2.0 实现 todo list15 ### 服务器部署 1. Flask+Vue+Nginx+uwsgi在阿里云ubuntu的部署16 2. 本地数据导到云17 3. vue 部署18 1. 修改config/index.js 中assetsPublicPath="./" 2. npm run build 3. 将dist 目录打包上传服务器 4. /etc/nginx/sites-enabled/default servername loaclhost; #要修改成localhost root *home/file*; #这里是打包好的vue的文件地址 5. 重启下nginx服务 sudo nginx -s stop; sudo nginx; sudo nginx -s reload; 6. 4. flask 部署 5. 爬虫部署 ## 错误总结 1. 前后端连接时使用show.vue 中created 函数自动触发获取后端函数, 但是,由于将created 函数写在了methods 对象里,导致不会被自动触发, 直到看到了[这个](https://www.cnblogs.com/goloving/p/9005130.html) 2. 后端在浏览器可以正确访问,但是 vue 就是访问网络错误,同源策略禁止, 使用 [Flask-CORS](https://blog.csdn.net/qq_1290259791/article/details/81174383?depth_1-utm_source=distribute.pc_relevant.none-task) 解决 3. [No module named 'flasksqlalchemy'](https://blog.csdn.net/weixin_40651515/article/details/105382964) 4. ['list' object has no attribute 'join'](https://zhidao.baidu.com/question/1900371429184276940.html) 5. ali 云nginx外界无法访问19 # Footnotes 1 [flask官方教程](https://dormousehole.readthedocs.io/en/latest/installation.html#id2) 2 [Flask-SQLAlchemy 官方教程](http://www.pythondoc.com/flask-sqlalchemy/quickstart.html) 3 [Python通用目录结构](https://blog.csdn.net/mist99/article/details/80707290?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1) [flask项目结构](https://www.jianshu.com/p/49dc66141d20) 4 5 6 [flasksqlalchemy 官方蓝图](https://dormousehole.readthedocs.io/en/latest/tutorial/views.html) [蓝图](https://blog.csdn.net/qq_24495287/article/details/83513624) 7 [flasksqlalchemy获取数据库中已有的表 ](https://blog.csdn.net/weixin_40238625/article/details/88177492) 8 [flasksqlalchemy 执行sql](https://blog.csdn.net/qq_kbyd/article/details/79994914?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1) 9 [检索数据库](https://blog.csdn.net/xiao_bao_an/article/details/84667705?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1) 10 [POST](https://www.cnblogs.com/51kata/p/5286834.html) 11 [python 字符串分割](https://blog.csdn.net/lwgkzl/article/details/82145387) 12 [python 字符串拼接](https://www.cnblogs.com/jamsent/p/7183905.html) [sql 多关键字模糊查询](https://www.linuxidc.com/Linux/2013-04/82511.htm) 13 14 15 16 17 [mysql 数据库导入导出](https://blog.csdn.net/u013626215/article/details/88548342) 18 [vue 部署](https://www.cnblogs.com/hi-shepherd/p/6911098.html) [vue 部署只需要dist](https://www.zhihu.com/question/46630687) 19 [安全组开启80端口 ](https://blog.csdn.net/weixin_41699529/article/details/79229173)