免费赠书基于Flask开发Web项目
Posted Python那些事
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了免费赠书基于Flask开发Web项目相关的知识,希望对你有一定的参考价值。
1 为项目创建虚拟环境
在开发中我们可能会用到不同版本的Python,并且每个项目使用的包又不尽相同,所以我们使用Python的虚拟环境,这样可以使每个项目使用的Python相互独立,避免直接使用主环境Python而产生大量的包,不便于项目的移植迁移。
1.手工创建虚拟环境
在Python 3.3之后官方把virtualenv包直接集成到内置包中,所以在Python 3.3之后创建虚拟环境,既可以用命令提示符,也可以在终端上使用下面命令手工创建虚拟环境。
$python3-m venv env #第一个venv告诉我们需要使用venv这个包,第二个env是创建虚拟环境的目录,可以任意,很多时候直接就写成venv,这里为了区分两个venv,因此把第二个写成了env
$cd env/bin/ # 进入虚拟环境文件夹的bin目录
$source activate # 激活Python虚拟环境
$deactivate # 退出虚拟环境
在路径前显示(env)则代表现在处于env产生的虚拟环境中。在这里使用pip安装任何包都是与主环境Python隔离的,互不影响,如图1所示。
图1
2.在PyCharm中创建虚拟环境
PyCharm可以在项目创建的时候一并创建虚拟环境,具体参考第3.4节中的创建过程。当项目创建好后想修改当前使用的Python解释器,可以在设置中修改Python解释器。
按组合键Ctrl+Alt+S进入设置,单击Project:<项目名>,选择ProjectInterpreter(Python解释器),单击右边齿轮,在显示的菜单中选择CreateVirtualEnv(创建新的虚拟环境),如图2所示。
图2
2 快速搭建HTTPS网站应用
这里快速搭建HTTPS服务的项管技术并没采用nginx或Apache,而是直接用Python代码实现的SSL加密通信。
1.生成密钥
使用openssl生成密钥和证书。
$mkdirSSL_test # 创建保存密钥的目录
$cdSSL_test # 进入SSL_test目录
$opensslgenrsa 1024 > ssl.key # 生成密钥
$opensslreq -new -x509 -nodes -sha1 -days 365 -key ssl.key > ssl.cert # 生成证书,有效期为365天
2.测试部署
在该目录下新建一个run.py脚本,写入下列代码。
#!/usr/bin/envpython3
# encoding: utf-8
"""
@version: ??
@author: xyj
@license: MIT License
@contact: xieyingjun@vip.qq.com
@Created on 2017/7/11
"""
from werkzeug.serving import run_simple
from flask import Flask, render_template
import ssl
app = Flask(__name__)
@app.route('/')
def index():
returnrender_template('index.html')
if __name__ == '__main__':
ctx =ssl.SSLContext(ssl.PROTOCOL_SSLv23) # 选择加密版本
ctx.load_cert_chain('ssl.cert','ssl.key') # 加载证书和密钥
run_simple('localhost',4000, app, ssl_context=ctx) # 通过ssl_context
# 加载ssl对象
3 使用PyCharm在本机容器中开发
从PyCharm 2016.1 Professional Edition以上版本新增了开发工具,支持Docker和Vagrant部署开发。
在项目新建的时候指定远程Python解释器或者修改当前项目的解释器都能切换到容器中运行。这里演示使用PyCharm 2017.1 Professional Edition版将现有项目使用的Python解释器切换成容器中的Python解释器,使用Docker容器作为项目的运行测试环境。
(1)项目内容介绍。
首先创建Dockerfile和Docker-compose.yml两个文件,Dockerfile用来构建用于程序调试的容器环境配置,Docker-compose.yml用于运行由Dockerfile生成的容器配置。
Dockerfile File
# 指定引用官方提供Python 3.6版本镜像
FROM python:3.6
# 绑定宿主机5000端口
EXPOSE 5000
# 创建app目录
RUN mkdir /app
# 指定工作目录为app
WORKDIR /app
# 复制本地requirements.txt到容器/app下
COPY requirements.txt /app/requirements.txt
# 容器内运行命令,安装依赖包
RUN pip install -rrequirements.txt
# 复制所有内容到/app目录下
COPY . /app
# 使用Python解释器运行flask-demo
CMD ["python","flask-demo.py"]
如图3所示。
图3
docker-compose.yml file
# Compose文件格式版本
version: '2'
# 定义服务
services:
# Web服务
web:
# 构建
build:.
# 宿主机与容器的端口映射
ports:
-"5000:5000"
如图4所示。
图4
(2)在Pycharm中配置Docker API控制。
单击File¨Settings或按组合键Ctrl+Alt+S调出设置面板,单击Build, Execution, Deployme选项,选择Docker设置,如图5所示。
图5
(3)将本地Python解释器换成远程Python解释器。
在设置面板中,选择Project:flask-demo选项中的Project Interpret,单击右侧齿轮,选择Add Remote添加远程解释器,在弹出的对话框中选择Docker Compose,在Server中选择上一步新建的远程API,Configuration file是选择用于远程编译时候的配置,如图6所示。
图6
(4)在容器中运行代码。
配置好环境后,按快捷键Alt+ F12调出控制台,输入Docker-compose up命令可自动构建容器,并使用Docker-compose.yml中的配置启动容器,如图7所示。
图7
(5)使用浏览器浏览容器中的网站。
构建好容器后,使用浏览器访问http://0.0.0.0:5000或者http://localhost:5000,访问通过容器生成的网站,如图8-8所示。
图8
(6)重新构建容器。
当我们修改了项目的代码后仅可以通过Docker-compose up --build重新构建容器,如图9所示。
图9
以上内容选自《Python全栈开发实践入门》。想要了解更多的Docker技术及Python实现吗?可以点击阅读原文来订购哦。
内容提要
全栈工程师不应只会前后端开发,而是应该从开发、测试、部署各个方面都有所掌握的全技能人才。《Python全栈开发实践入门》使用了热门的Docker 容器技术、Gitlab 版本控制、Gitlab-runner持续集成、Python Web Flask 框架等,将一整套开发流程通过简单案例展现出来。本书不仅图解了Python开栈开发、测试、部署等内容,还详细介绍了利用Docker来开发Python项目并持续集成的完整开发流程,尤其适合新手。
福利来了
本次小编特意拿出 5 本书作为福利赠送给关注Python那些事的小伙伴们,特别感谢博文视点的赞助与支持。赠书规则:1、大家可以在留言区留言评论自己想要这本书的理由或者是评论某项Python技术,小编将从留言区选择最受欢迎的3位赠书;2、剩余2本书将从留言中选择我最喜欢的回复,大家可以随意发挥。由于留言区数目有限,会筛选放出认真有价值的评论。截止日期为11月23日 22:00。中奖的小伙伴届时我会在留言区回复。
看完本文有收获?请转发分享给更多人
关注「Python那些事」,做全栈开发工程师
点击阅读原文可以订购哦!
以上是关于免费赠书基于Flask开发Web项目的主要内容,如果未能解决你的问题,请参考以下文章
TFS-CLUB社区 第4期赠书活动〖Flask Web全栈开发实战〗等你来拿,参与评论,即可有机获得
《Flask Web开发:基于Python的Web应用开发实战》pdf 免费下载
《Flask Web开发:基于Python的Web应用开发实战》pdf 完整版免费下载