# 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 开发
## 开发环境
### 安装python3,pip3,flask
sudo pip3 install PyMySQL
### 启动和调试模式
export FLASKAPP=hello.py
export FLASKENV=development
flask run
### 数据库Flask-SQLAlchemy
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
## 开发进程-第一次迭代
### 创建应用目录结构
1. 创建.gitignore
2. 创建flaskuse 目录存放源代码
3. 创建tests 目录用于存放测试文件
4. 创建setup.py 自动化安装脚本
5. flask run执行后自动生成instance 目录
6. 创建runtest.sh 并赋予执行权限,用于启动测试
### 项目配置
1. 修改 init.py 增加导入配置
2. 设置默认配置文件flaskuse.settings
3. 设置开发测试配置文件夹instance/conf
- devconfig.py 开发配置文件
- testconfig.py 测试配置文件
4. 通过export FLASKCONF="conf/devconfig.py"指定
### 配置数据库
1. 在devconfig.py 中写入配置项
2. 默认使用mysql 数据库
### 使用蓝图和视图
1. 创建flaskuse/pages 目录
2. 创建pages/\_init\_.py 中initapp 用于注册页面
3. 创建pages/show.py 建立页面show 的返回函数show
4. 在flaskuse/\_init\_.py 中调用pages/\_init\_.py
### flasksqlalchemy 数据库交互
1. 使用SQLAlchemy 反射获取表
1. 在show.py 页面函数中从数据库中获取所有表信息
2. 循环读取出每个表中数据到字典数组cards
3. 按照时间降序排列新闻
4. 转换为json 并返回
2. 执行sql 命令
## 开发进程-第二次迭代
### 添加信息查询功能
### Flask-SQLALcheny 检索数据库
### Flask 接受POST 请求
### 多关键字模糊查询
1. 对接收到的查询字串用空格分割
2. 拼接sql 模糊查询语句
3. 查询并返回
## 部署
### 前后连接
1. Flask-Vue前后端分离
2. 使用 Flask 和 Vue.js 来构建全栈单页应用
3. flask 与 vue.js 2.0 实现 todo list
### 服务器部署
1. Flask+Vue+Nginx+uwsgi在阿里云ubuntu的部署
2. 本地数据导到云
3. vue 部署
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外界无法访问
# 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)