python实战项目前后端分离flask_用vue和flask实现一个前后端分离的网站,自动回答问题...

# 文件目录

u=4019064899,692904342&fm=173&app=49&f=JPEG?w=477&h=326&s=BAC6A14C1EA2976C4EC9E10E0000E0C2

1- 根目录是 /root/code,

2- flask_demo和vue_demo都是放在这个目录下的,

3- nginx下的两个配置文件是放在/etc/nginx/conf.d/下的,

4- app.service是放在

/etc/systemd/system/下的

# 以下是需要提前知道的

1- 这是一个小demo,提供了具体的操作,

2- 基于vue官方的例子,点击这里,

3- 用nginx来解决跨域问题

4- 只允许特定ip访问接口,配置nginx来实现

# 用flask搭建一个接口

1- 编写app.py

u=2710860928,2553973764&fm=173&app=49&f=JPEG?w=640&h=467&s=A8C2B7489AA6976C0CEDAD0F0000E0C3

运行python app.py,会默认启动5000端口,

在浏览器里面访问 http://127.0.0.1:5000 就可以访问到json字符串,

页面显示的是:

{"answer": "yes", "forced": false}

正好是app.py里面配置的返回结果

2- uwsgi直接用python app.py启动,不能后台运行,

所以这里使用uwsgi来启动app.py,让flask后台运行,

安装uwsgipip install uwsgi

编写wsgi.py

u=1996876223,334521541&fm=173&app=49&f=JPEG?w=321&h=159&s=A0C297411BA09D6A4A557C0F0000E0C1

这里写wsgi.py方便配置ini文件

编写flask_demo.ini

u=2563550763,2919312143&fm=173&app=49&f=JPEG?w=483&h=360&s=A0C0B74BFAE49F6C4AD9AC0F0000E0C1

然后就可以通过

uwsgi --ini flask_demo.ini

来后台启动flask

3- 把flask弄成一个服务这样的话就可以用systemctl来管理,更加方便.

编写app.service

u=3317748161,990588310&fm=173&app=49&f=JPEG?w=578&h=213&s=A0C297432EE0977008DDE407000070C1

启动flask:

systemctl start app

这样就启动flask了,

还有以下这些命令:

重启:

systemctl restart app

停止

systemctl restart app

接口部分就弄好了。

# 用vue创建网页

编写index.html

u=2620423842,2493871812&fm=173&app=49&f=JPEG?w=640&h=861&s=A0C2B74BDAE7B76C5E5DD40F000070C3

axios.get('http://remote_ip/')

这里面的remote_ip得换成服务器ip或者127.0.0.1,

前端页面就写好了。

# nginx启动两个server

分别配置接口和前端页面,

配置文件的路径是

/etc/nginx/conf.d/

1- 接口的配置文件是mysite.conf

u=3569874830,3368671304&fm=173&app=49&f=JPEG?w=640&h=739&s=A8C2A748DAA6976C4C55340F0000E0C2

配置文件里面的remote_ip要替换成具体的ip,

这里其实就是外部请求你的公网ip,然后再转发到本地的5000端口,

5000端口再返回结果,外部浏览器得到结果。

2- 前端的配置文件是vue.conf

u=3694858810,2181927259&fm=173&app=49&f=JPEG?w=640&h=436&s=A8C2A348DAA4B56E4E71100B0000E0C1

这里就是简单地指定一下index.html,换了一个端口,

记得把remote_ip替换成具体ip,

3- 报错上面两个配置文件弄好了之后,启动nginx一般会报错,

是因为没有给index.html, app.py这些文件权限

chmod +x -R /root/code/

我的文件都放在/root/code/下面,所以这里这样加了权限

+x 是授予权限-R 是递归授予权限,就是文件夹和子文件夹下的文件,都一次性授予了权限

4- 启动启动flask

systemctl start app

启动nginx

nginx

# 解决跨域问题

在前端里面,直接访问同一个ip,不同端口,是不被允许的,这种情况就是跨域,

这里可以用nginx来解决

u=3206539055,985570969&fm=173&app=49&f=JPEG?w=640&h=320&s=A9C2A7440AA8996E14F1D50E0000A0C2

添加headers,来允许其他域的请求

# 只允许特定ip访问接口

u=956075651,3734139367&fm=173&app=49&f=JPEG?w=310&h=244&s=A1D2A36ECAE6AF6C4C5D2D0B0000E0C2

# 总结

前后端分离好处是很明显的,不仅可以分工合作,同时开工,也不会把前后端的东西杂糅在一起,思路会更加清晰。

# 源文件地址

https://github.com/otfsenter/vue_flask_configuration

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值