不花一分钱,搭建一个完全免费的python3+flask+mysql服务器

不花一分钱,搭建一个完全免费的python3+flask+mysql服务器

转载自:http://www.rendoumi.com/bu-hua-yi-fen-qian-da-jian-yi-ge-wan-quan-mian-fei-de-python3-flask-mysqlfu-wu-qi/

V2EX上有求 python3 部署服务器的帖子,python3+flask+mysql,那我们就搭一个看看。

到 https://getcarina.com 去注册一个账号,然后激活它,这家是rackspace支持的,财大气粗啊:getcarina

然后登陆,会要求你输入一个手机号,没问题,其实一个手机号可以重复使用N次的:输入手机验证码后正式进去,界面超级简陋,没关系,点击增加一个cluster:

输入cluster的名称,随便起名即可,不用选autoscale,没必要自动伸缩:

然后系统建立cluster,会花一点时间,这个过程有可能失败,不要紧,删掉cluser,重建即可:

建好后STATUS变成了绿色的active:

点击下面的按钮Get access,会有一个Download file,点击下载,会 下载回来一个zip压缩包。

再下载Docker的命令行软件:

wget https://get.docker.com/builds/Windows/x86_64/docker-1.10.1.exe  

把docker-1.10.1.exe改名为docker.exe,并且把压缩包里的文件解压,都一起放到c:\docker目录下,一共有9个文件,如下图:

打开个命令行窗口,进入c:\docker,执行docker.cmd,初始化一下环境变量:

执行docker.exe info,看看能否正确连上,:

c:\docker>docker.exe info  

显示连上,内存有4G,给的真不少,其实硬盘是给了60G的,很大方:

先创建网络,然后创建一个mysql容器,注意语法,xxxxxxxx这里是密码:

c:\docker>docker.exe network create wordnet  
c:\docker>docker.exe run --detach --name mysql --net wordnet --env MYSQL_ROOT_PASSWORD=xxxxxxxx mysql:5.6  

接着创建python3.4+flask的容器:

c:\docker>docker.exe run --detach --name flask --net wordnet --publish 80:80 docteurfraise/flask-python34  

查看一下flask的容器id:

c:\docker>docker.exe ps  

看到flask的容器id是f75221413b4b,运行bash进入容器,然后pip安装存取mysql的组件,注意python3的组件很有挑剔性:

docker.exe exec -it f75221413b4b bash  
pip install mysql-connector-python  
pip install flask-sqlalchemy  

注意:你所建立的所有容器都是可以用容器名互见的,所以你在bash里面ping一下mysql和flask是可以ping通的。

所以你在flask里存取mysql数据库的话,host用mysql就可以了,连接字串是"mysql+mysqlconnector://..."

搭好的flask容器的flask地址是: /usr/src/app/

静态文件地址是: /usr/src/app/static/

看看ip和端口:

c:\docker>docker.exe port flask  
80/tcp -> 172.99.65.115:80  

记下port命令的结果,172.99.65.115:80,程序布好后访问这个地址就好了。

好了,其实还可以搭博客等等,看你自己的需求了。

comments powered by Disqus
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用layui+Python+Flask+MySQL实现的分页代码示例: HTML代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>分页示例</title> <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css"> </head> <body> <div class="layui-container"> <table class="layui-table"> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>地址</th> </tr> </thead> <tbody id="table_data"></tbody> </table> <div id="page"></div> </div> <script src="https://cdn.staticfile.org/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> <script> layui.use(['laypage', 'layer'], function(){ var laypage = layui.laypage, layer = layui.layer; laypage.render({ elem: 'page', limit: 10, curr: 1, count: 100, jump: function(obj, first){ if(!first){ $.ajax({ url: '/get_data', type: 'POST', dataType: 'json', data: { page: obj.curr, limit: obj.limit }, success: function(data){ if(data.code == 0){ var html = ''; for(var i=0;i<data.data.length;i++){ html += '<tr>'; html += '<td>'+data.data[i].name+'</td>'; html += '<td>'+data.data[i].age+'</td>'; html += '<td>'+data.data[i].gender+'</td>'; html += '<td>'+data.data[i].address+'</td>'; html += '</tr>'; } $('#table_data').html(html); } else{ layer.msg('获取数据失败!'); } }, error: function(){ layer.msg('获取数据失败!'); } }); } } }); }); </script> </body> </html> ``` Python代码: ```python from flask import Flask, render_template, request, jsonify import pymysql app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/get_data', methods=['POST']) def get_data(): page = request.form.get('page', 1, type=int) limit = request.form.get('limit', 10, type=int) offset = (page - 1) * limit conn = pymysql.connect(host='localhost', user='root', password='123456', database='test', charset='utf8') cursor = conn.cursor(pymysql.cursors.DictCursor) cursor.execute('SELECT * FROM users LIMIT %s, %s', (offset, limit)) data = cursor.fetchall() cursor.execute('SELECT COUNT(*) FROM users') count = cursor.fetchone()['COUNT(*)'] cursor.close() conn.close() return jsonify({'code': 0, 'msg': '', 'data': data, 'count': count}) if __name__ == '__main__': app.run(debug=True) ``` 这个示例使用了jQuery和layui库,通过ajax异步获取分页数据。在Python部分,使用了pymysql库连接MySQL数据库,通过分页查询获取数据并返回给前端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值