Flask框架从0到1实现博客网站(请以学习的目的观看,博主也是以学习为主)
一,项目中用到的技术(知识点)
GitHub地址:https://github.com/fantongxue666/Python-Projects
1,安装python3环境
安装python3请参考:https://www.jb51.net/article/165639.htm
2,创建flask项目
pycharm创建flask项目请参考:https://www.cnblogs.com/momoyan/p/11028467.html
3,render_template模板引擎
首先创建index.html,画好模板
然后在app.py文件中写接口
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/index')
def toIndex():
title='樊同学的'
user={'username':'樊同学'}
return render_template('index.html',title=title,user=user)
if __name__ == '__main__':
app.run()
启动项目,访问 http://localhost:5000/index
4,flask连接mysql数据库
首先进入当前项目路径的终端,安装pymysql
写一个jdbc工具类,全局调用
import pymysql
class DataBaseHandle(object):
# 相当于java的构造方法,初始化数据库信息并创建数据库连接
def __init__(self):
self.host = '127.0.0.1'
self.username = 'root'
self.password = '1234'
self.database = 'test'
self.db = pymysql.connect(self.host, self.username, self.password, self.database)
# 增删改
def updateDB(self,sql):
cursor = self.db.cursor()
try:
i = cursor.execute(sql)
self.db.commit()
except:
self.db.rollback()
finally:
cursor.close()
return i
# 查询
def selectDB(self,sql):
cursor = self.db.cursor()
temp = None
try:
cursor.execute(sql)
temp = cursor.fetchall() # 返回所有记录列表
except:
print("查询发生错误")
finally:
self.db.close()
return temp
然后全局调用
@app.route('/')
def hello_world():
db = DataBaseHandle() # 数据库操作类 全局
data = db.selectDB("select * from stu")
list=[]
for obj in data:
list.append({
'name':obj[1],
'age':obj[2],
'time':obj[4]
})
return json.dumps(list,cls=DateEncoder)
5,flask项目在linux环境运行上线
查看系统自带的python版本
python --version
安装一些需要用到的工具
yum -y install gcc gcc-c++ autoconf automake make zlib zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel libffi libffi-devel xz xz-devel
上传python至服务器
解压
tar zxvf Python-3.6.10.tgz -C 解压到的路径
编译安装
# 先进入解压后的文件夹下
# --prefix=选择安装路径
./configure --prefix=/usr/local/python3
# 等待一段时间后,编译并安装
make && make install
配置环境变量
vim /etc/profile
# 在底部添加一行:
export PATH=$PATH:/usr/local/python3/bin
# 保存退出后刷新
source /etc/profile
# 配置环境变量后,终端输入python3查看是否成功
替换原有的python2
这时虽然终端输入python3出现的是最新安装的python3,但是输入python出来的还是原来python2
我们可以修改python的默认路径,因为python指向python2
# 将原来python重命名为python2-6.6
mv /usr/bin/python /usr/bin/python-2.6.6
# 建立新的软连接,指向python-3.6.10
# 注意:软连接一定要使用绝对路径!!!
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
配置完成以后测试是否安装成功
# 这里我用requests库进行测试
pip install requests
# 更新pip
pip install --upgrade pip
打包Python项目的依赖(也就是本地安装的项目依赖)
压缩Python项目和上传到服务器,解压
zip包的解压命令:unzip 包名
cd到项目里,安装依赖
pip3 install -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com -r requirements.txt
pip install flask
使用gunicorn部署flask项目
gunicorn安装
gunicorn安装非常简单,使用命令pip install gunicorn即可。一般使用它,主要是为使用其异步的worker模型,还需要安装对应的异步模块。
$ pip install greenlet # 使用异步必须安装
$ pip install eventlet # 使用eventlet workers
$ pip install gevent # 使用gevent workers
gunicorn通常使用的参数如下:
-c CONFIG, --config=CONFIG
# 设定配置文件。
-b BIND, --bind=BIND
# 设定服务需要绑定的端口。建议使用HOST:PORT。
-w WORKERS, --workers=WORKERS
# 设置工作进程数。建议服务器每一个核心可以设置2-4个。
-k MODULE
# 选定异步工作方式使用的模块。
在shell中输入你的启动配置
$ gunicorn -w 3 -b 0.0.0.0:5000 app:app
# 此处app:app中,第一个app为flask项目实例所在的包,第二个app为生成的flask项目实例
$ gunicorn -w 3 -b 0.0.0.0:5000 app:app --daemon #后台运行
这样运行正常就可以启动服务器了。
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!