免费赠书基于Flask开发Web项目

Posted Python那些事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了免费赠书基于Flask开发Web项目相关的知识,希望对你有一定的参考价值。

为项目创建虚拟环境

在开发中我们可能会用到不同版本的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:<项目名>,选择ProjectInterpreterPython解释器),单击右边齿轮,在显示的菜单中选择CreateVirtualEnv(创建新的虚拟环境),如图2所示。

【免费赠书】基于Flask开发Web项目

图2

快速搭建HTTPS网站应用

这里快速搭建HTTPS服务的项管技术并没采用nginxApache,而是直接用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对象

使用PyCharm在本机容器中开发

PyCharm 2016.1 Professional Edition以上版本新增了开发工具,支持DockerVagrant部署开发。

在项目新建的时候指定远程Python解释器或者修改当前项目的解释器都能切换到容器中运行。这里演示使用PyCharm 2017.1 Professional Edition版将现有项目使用的Python解释器切换成容器中的Python解释器,使用Docker容器作为项目的运行测试环境。

1)项目内容介绍。

首先创建DockerfileDocker-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所示。

【免费赠书】基于Flask开发Web项目

3


docker-compose.yml  file

# Compose文件格式版本
version: '2'

# 定义服务
services:

# Web服务
  web:
    # 构建
   build:.
    # 宿主机与容器的端口映射
   ports:
     -"5000:5000"


如图4所示。

【免费赠书】基于Flask开发Web项目

2)在Pycharm中配置Docker API控制。

单击File¨Settings或按组合键Ctrl+Alt+S调出设置面板,单击Build, Execution, Deployme选项,选择Docker设置,如图5所示。

【免费赠书】基于Flask开发Web项目

5

3)将本地Python解释器换成远程Python解释器。

在设置面板中,选择Project:flask-demo选项中的Project Interpret,单击右侧齿轮,选择Add Remote添加远程解释器,在弹出的对话框中选择Docker Compose,在Server中选择上一步新建的远程APIConfiguration file是选择用于远程编译时候的配置,如图6所示。

【免费赠书】基于Flask开发Web项目

6

4)在容器中运行代码。

配置好环境后,按快捷键Alt+ F12调出控制台,输入Docker-compose up命令可自动构建容器,并使用Docker-compose.yml中的配置启动容器,如图7所示。

【免费赠书】基于Flask开发Web项目

7

5)使用浏览器浏览容器中的网站。

构建好容器后,使用浏览器访问http://0.0.0.0:5000或者http://localhost:5000,访问通过容器生成的网站,如图8-8所示。

【免费赠书】基于Flask开发Web项目

8

6)重新构建容器。

当我们修改了项目的代码后仅可以通过Docker-compose up --build重新构建容器,如图9所示。

【免费赠书】基于Flask开发Web项目

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 完整版免费下载

签名赠书 | 沪江Web前端技术团队撰写的《移动Web前端高效开发实战》免费大放送

作者签名赠书,免费学习软件编程

学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码