当前位置:首页>开发>正文

如何在python3中安装flask 新手求教 python3 用 flask-sqlalchemy pymysql 连接 mysql

2023-04-19 08:54:01 互联网 未知 开发

 如何在python3中安装flask 新手求教 python3 用 flask-sqlalchemy pymysql 连接 mysql

如何在python3中安装flask

看看本机pip安装了没有。 (推荐安装最新的3.5,自带pip)
如果安装了则在命令行内输入
pip install flask

如果没有。
首先安装easy_install下载地址:https://pypi.python.org/pypi/ez_setup解压,安装.
python ez_setup.py

安装好easy_install 之后 再安装pip下载地址:https://pypi.python.org/pypi/pip解压,安装.
python setup.py install

之后要安装的包就直接
pip install flask

新手求教 python3 用 flask-sqlalchemy pymysql 连接 mysql

这个问题经常难道新手一下,因为大部分教程里(包括经典的《Flask
Web开发》一书),告诉了我们如何使用flask-sqlalchemy操作sqlite,但在生产环境(线上网站)上,我们肯定是使用MySQL或其
他,而大部分的教程里,又告诉我们flask-sqlalchemy使用MySQL的方式是:
mysql://username:password@server/db

结果我们照葫芦画瓢的来一下,发现压根不行,写好的网站一跟数据库沾边就报错。

Python和MySQL是「两个国家的人」,他们互不相通,因而需要一个中间代理,让双方互通有无,跟翻译一样(这比喻不准确,但足够你明白意思就行)。翻译又有很多选择,不同的翻译各有特色。

主解决问题选择的翻译是「flask-mysqldb」,其背后的主子是「MySQL-python」。恩,说到这里你应该知道,「flask-xxx」
这样的包都是对背后主子进行了适合Flask封装的插件,跟包子皮一样,里面的馅才是重点,「flask-mysqldb」的馅是「MySQL-
python」。

而我要推荐的是另一个翻译:PyMySQL,这玩意的好处是可以做异步(「MySQL-python」也可以,个人口味罢了),简而言之,网站访问量大了就需要考虑异步,现在别管这是啥子。这玩意的安装方式是:
pip install PyMySQL
之后,数据库连接由:
mysql://username:password@server/db

改为
mysql pymysql://username:password@server/db

就可以了

如何部署简单python flask应用

所需工具:
python3.flask
nginx
gunicorn
supervisor

系统环境:
Ubuntu 14.04LTS

我们先写一个最基本的flask应用:

demo.py

from flask import Flask
app = Flask(**name**)
@app.route()
def index():
return Hello World.
if __name__ == __main__:
app.run()
运行这个py文件,打开浏览器访问127.0.0.1:5000就能看到显示Hello World的页面 .
如果让这个flask引用监听来自公网ip的请求,理论上你跑此程序的机器就相当于一个服务器了,然而这个服务器并不完美,所以我们需要nginx和gunicorn来增加它的功能,让它真刀真枪上生产环境的时候能按要求运行。

flask自带的WSGI框架性能很差劲,只能适用于开发环境调试使用。我们用专业一点的gunicorn(还有很多其他优秀的框架)替代flask自带的WSGI框架。

配置完后,通过命令’/usr/local/bin/gunicorn -b127.0.0.1:5000‘启动应用。打开浏览器访问127.0.0.1:5000,同样能够得到返回页面

然而gunicorn也仅仅是一个python的WSGI框架而已,要让它真正处理来自互联网的各类访问功能还是有点欠缺,这时候就需要用到大名鼎鼎的nginx 服务器来替gunicorn遮风挡雨了。

Ubuntu下安装nginx可以用命令

sudo apt-get install nginx

安装后需要进行下配置:

cd /etc/nginx/sites-available
sudo vi test (test为配置名称,可以根据自己项目进行命名)

test文件的配置为:
server {
listen 80 # 监听80端口
location / {

proxy_pass http://127.0.0.1:5000 # 代理本机127.0.0.1:5000的服务

}
location /static {

alias /home/ubuntu/myproject/myblog/app/static # 负载均衡

}
}

cd ..

cd sites-enable

sudo ln -s ../sites-available/lwhile . (创建软链接,别漏掉最后的.)

sudo service nginx reload

sudo service nginx restart

这样nginx的基本配置文件就写好了 接下来我们配置进程管理工具supervisor supervisor可以在后面启动你的python进程,这样很方便
1.cd /etc/supervisor/conf.d

2.sudo vi test.conf (test为文件名)

[program:test]
command = /usr/local/bin/gunicorn -b127.0.0.1:5000 /home/ubuntu/myproject/test.py

3.sudo supervisorctl

4.reload

5.start test

如果一切正常,做完这所有步骤之后,现在公网的ip访问你的主机,就可以打开你的flask应用了

python3.x怎么安装flask

Windows下Flask安装

1.运行好虚拟环境
2.在虚拟环境下运行pip install flask就可以在想你环境中安装Flask及其依赖了,可以在输入python命令转到python编辑环境,再输入import flask查看是否安装成功。
3.在Scripts同级目录新建一个文件夹,然后里面新建一个hello.py文件,代码内容为:
from flask import Flask
app=Flask(__name__)
@app.route(/)
def hello_world():
return "Hello World"
if __name__ == __main__:
app.run() 1234567123456
然后切换到该文件的目录下,运行python hello.py命令就可以了。然后又用网站访问127.0.0.1:5000
4.Ubuntu下Flask安装:
1.安装virtualenv,为每一个pyhton应用都“安装”一个独立的Python环境;
sudo apt-get install python-virtualenv 或 sudo easy_install virtualenv
2.为你的应用创建一个目录:
mkdir myproject
cd myproject121
3.为应用创建一个单独的开发环境:
virtualenv env //创建一个名为env的目录,这个目录就是一个独立的python环境
. env/bin/activate //激活名为env的环境,注意”.”点后面有关空格;
4.在激活的前提下,安装flask
apt-get install python-flask1
然后写一个最小的基于flask的应用:
cd env
vi hello.py121from flask import Flask
app = Flask(__name__)

@app.route(/)
def hello_world():
return Hello World!

if __name__ == __main__:
app.run() 12345678912345678
然后执行:sudo python hello.py
出现提示:
* Running on http://127.0.0.1:5000/ (Press CTRL C to quit)
在浏览器访问http://127.0.0.1:5000/,可以看到Hello World!

python flask 怎么默认访问地址是本机地址

1、方法

flask运行服务器后,会发现只有你自己的电脑可以使用服务,而网络中的其他电脑却不行。
缺省设置就是这样的,因为在调试模式下该应用的用户可以执行你电脑中的任意
Python 代码。

关闭调试或信任你网络中的用户,那么可以让服务器被公开访问。只要像这样改变 run() 方法的调用:

app.run(host=0.0.0.0, port=80)
2、说明

app.run(host=0.0.0.0, port=80)
此代码可以让主机通过本机IP和80端口访问服务器。
3、函数说明

run(host=None, port=None, debug=None, **options)
在本地开发服务器上运行应用程序。 如果调试标志被设置,服务器将自动重新加载代码更改,并显示一个调试器,以防发生异常。
如果要以调试模式运行应用程序,但禁用交互式调试器上的代码执行,则可以将use_evalex = False作为参数传递。 这将使调试器的追溯屏幕保持活动,但禁用代码执行。

最新文章