Flask搭建虚拟环境并运行第一个flask程序

以下操作均在 windows 环境下进行,我使用的 Python 版本是 3.7.1

一、搭建虚拟环境

1.1 使用 pipenv 搭建虚拟环境

当然也可以使用 virtualenv,但是这个虚拟环境经常安装不上,这里给大家介绍另一种虚拟环境的安装方式,我使用的 cmd 命令进行下列的操作

安装pipenv: pip install pipenv

创建项目运行的目录: mkdir app

进入该目录: cd app

安装环境依赖:pipenv install

进入虚拟环境:pipenv shell

6. 查看当前的 python 包:pip list

1.2 为虚拟环境安装其他的包

我们要使用 flask,所以使用如下命令即可:pipenv install flask,如果有其他需要,比如安装 requests, pumysql 等等命令都是和上面一样的

1.3 pipenv 命令一览表

命令 功能
pipenv install 初始化虚拟环境
pipennv 进入虚拟环境
pipenv install xxx (uninstall xxx) 为虚拟环境安装(删除)包
exit 退出虚拟环境
pipenv graph 查看包之间的依赖关系

二、在开发工具中设置虚拟环境

我使用的开发工具是 Pycharm 社区版的

2.1 查找 虚拟环境的路径

这里我们要输入这个命令查看 pipenv 的路径:pipenv --venv , 我的是安装在了 如下的位置

2.2 在开发工具中配置虚拟环境

然后打开 pycharm 的设置中,找到 setting

然后找到 Python 解释器,添加虚拟环境,找到我们刚才查到的路径,添加即可

三、第一个 flask 程序

3.1 运行第一个 flask 应用程序

我们只需要三句话就可以实现一个最简单的 flask 应用程序

#!/usr/bin/python
# -*- coding: utf-8 -*-
#file: app.py
#@author: Gorit
#@contact: gorit@qq.com
#@time: 2020/2/26 9:08

from flask import Flask

app = Flask(__name__) # 实例化 flask , __name__ 会作为 app 核心的一个标识,这个可以为任意的字符串

@app.route('/hello') # 使用路由,给 hello 函数定义一个路由,然后游览器通过http 请求得到相对应的数据
def hello(): # hello 是视图函数,也是 mvc 中的 controller
    return "Hello World"

app.run()

然后我们在虚拟环境中,输入 python app.py ,就可以在 http://127.0.0.1:5000 中启动我们的 flask 应用程序,但是打开之后发现啥也没有,这是因为,我们在程序中设置了路由,所以我们要把路径改成 http://127.0.0.1:5000/hello ,然后就可以在网页找那个看到 hello world 字符串了

3.2 flask 中路由的重定向机制

还是复用上面的一段代码,我们做一个小小的变动

from flask import Flask
app = Flask(__name__) 

@app.route('/hello/') # 我们在路由这里多加入一个斜杠
def hello():
    return "Hello World"

app.run()

然后我们正常运行

我们把路径改一下: 127.0.0.1:5000/hello ,然后回车我们发现页面跳动了一下,就变成了正常的状态

我们打开 F12 开发者工具,找到 network 选项,我们发现这里产生了两个网络请求

经过查阅资料,也就是说,我们输入 /hello 会被 Python flask 做永久重定向处理

3.3 另一种路由注册的方式

我们使用 app.route("/hello"),作为访问的界面,但是我们使用 ctrl + 鼠标左键点击 route,可以查看它的源码,route 是作为装饰器被使用的

重点在下面的实现方式,路由的核心实际上是通过设置 add_url_rule(..) 路由规则实现的

所以我们也可以使用另一种方法,设置路由,使用起来也比较容易,第一个参数,设置路径,第二参数,指定视图函数,也就是 hello()

from flask import Flask
app = Flask(__name__)

# @app.route('/hello/')
def hello():
    return "Hello World"

app.add_url_rule('/hello',view_func=hello)

if __name__ == '__main__':
    app.run()

第二种使用的情况一般在基于类的视图使用比较多,也就是我们使用 面向对象的方式编写 flask 应用程序

3.4 flask 改变运行方式

app.run() 中有三个参数,我们一起改变

  • 开启 debug 模式 (这样flask 就会自动重启服务器了,不用我们手动重启服务器)
  • 指定启动端口 (默认端口是 5000,我们可以手动修改端口了)
  • 改变主机 (默认是 127.0.0.1,如果要挂在服务器上,可以把 host 改成 0.0.0.0,然后关闭防火墙,这样外网就可以看到了)
from flask import Flask
app = Flask(__name__)

@app.route('/hello')
def hello():
    return "Hello World"

if __name__ == '__main__':
    app.run(host="localhost", debug=True,port=9999)

然后运行 http://localhost:9999/hello

然后就可以看到内容了

3.5 我们想看到 html 标签要怎么办呢?

我们尝试一下把 hello 视图函数中,返回的内容改成 html 标签试试看看有效果吗?

from flask import Flask
app = Flask(__name__)

@app.route('/hello/')
def hello():
    return "<html></html>"

if __name__ == '__main__':
    app.run()

实际上它什么都不会显示,这是为什么呢?这是一个请求头的问题。

Flask 请求头的内容包括

  • status code
  • content-type http headers

因为请求头中 content-type 已经指定了值,所以 html 标签无法像 字符串那样显示,这个时候我们就需要改变请求头的信息,我们可以这么做

from flask import Flask,make_response
app = Flask(__name__)

@app.route('/hello')
def hello():
    # 手动创建 response
    headers = {
        "content-type": "text/html",  # plain 当成普通的字符串,plain 改后才能 html 就可以正常的显示 html 标签的内容
    }
    return '<html><body><font color="red">你好,世界</font></body></html>', 200, headers

if __name__ == '__main__':
    app.run()

ok 这样就能正常显示我们的 html 标签中的内容,但是字体不对,这就是编码格式的问题了

其他类型的

  • content-type: “text/plain” 将返回的数据当成字符串
  • “content-type”:“application/json” 使用 api, 指定返回 json 格式的数据

3.6 重定向的妙用

我们可以在 headers 中加入 location 参数,可以是用户加载某指定路径的时候,自动跳转到其他的页面

from flask import Flask,make_response
app = Flask(__name__)
app.config.from_object('config')

@app.route('/hello')
def hello():
    headers = {
        "content-type": "text/plain",  # plain 当成普通的字符串
        # "content-type":"application/json"  使用 api, 指定返回 json 格式的数据
        "location": "https://www.bing.com"
    }
    # 同样实现 跳转效果,控制响应状态码
    return '<html></html>', 301, headers

if __name__ == '__main__':
    app.run()

到此这篇关于Flask搭建虚拟环境并运行第一个flask程序的文章就介绍到这了,更多相关Flask搭建环境内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Windows上使用virtualenv搭建Python+Flask开发环境

    关于virtualenv: VirtualEnv用于在一台机器上创建多个独立的Python虚拟运行环境,多个Python环境相互独立,互不影响,它能够: 1.在没有权限的情况下安装新套件 2.不同应用可以使用不同的套件版本 3.套件升级不影响其他应用 虚拟环境是在Python解释器上的一个私有复制,你可以在一个隔绝的环境下安装packages,不会影响到你系统中全局的Python解释器. 虚拟环境非常有用,因为它可以防止系统出现包管理混乱和版本冲突的问题.为每个应用程序创建一个虚拟环境可以确保应

  • Flask框架的学习指南之开发环境搭建

    Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2.很多功能的实现都参考了django框架.由于项目需要,在此记录下学习的过程及心得. 工欲善其事,必先利其器.就从搭建一套flask开发环境开始flask之旅吧. 一.平台说明 操作系统:window 7  64bit  数据库:mysql5.6  python:v2.7  开发集成软件:PyCharm5.0 二.开发环境搭建 1.安装flask框架包 1

  • Flask框架搭建虚拟环境的步骤分析

    本文实例讲述了Flask框架搭建虚拟环境的步骤.分享给大家供大家参考,具体如下: 为什么要搭建虚拟环境? 在开发过程中, 当需要使用python的某些工具包/框架时需要联网安装 比如联网安装Flask框架flask-0.10.1版本 sudo pip install flask==0.10.1 提示:使用如上命令, 会将flask-0.10.1安装到/usr/local/lib/python2.7/dist-packages路径下 问题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个

  • python框架flask入门之环境搭建及开启调试

    传说中的python web开发有2大宝器,一个是倚天剑,一个就是屠龙刀.django作为倚天剑已经被大众所熟知,今天我们就来看看flask这把屠龙宝刀. 简介 Flask 是依赖Jinja模板引擎和 WerkzeugWSGI 套件的一套web微框架. 它是小巧的,它是符合wsgi标准的,它是优雅的,也是容易上手的框架,可以说谁掌握了flask这把屠龙刀,谁就可以号令python的web江湖. 安装 包管理工具的出现使得软件安装变得异常简单和容易.python中的包管理工具是pip.一般这个工具

  • Flask搭建虚拟环境并运行第一个flask程序

    以下操作均在 windows 环境下进行,我使用的 Python 版本是 3.7.1 一.搭建虚拟环境 1.1 使用 pipenv 搭建虚拟环境 当然也可以使用 virtualenv,但是这个虚拟环境经常安装不上,这里给大家介绍另一种虚拟环境的安装方式,我使用的 cmd 命令进行下列的操作 安装pipenv: pip install pipenv 创建项目运行的目录: mkdir app 进入该目录: cd app 安装环境依赖:pipenv install 进入虚拟环境:pipenv shel

  • PyCharm的设置方法和第一个Python程序的建立

    1.代码编辑 字体大小设置 进入 File->Settings->Editor->Colors & Fonts->Font中. 首先要点击"Save as"然后为这个设置命名,我这里填入"MySize"(相当于创建了一个配置文件叫MySize). 然后就可以在Size中更改字体大小,Line spacing是行间距.Primary font是字体类型. 2.控制台输出 字体大小设置 进入 File->Settings->E

  • Flask搭建一个API服务器的步骤

    一.API列表 1. 获取作品列表 ① 获取手工制作作品列表. 请求格式: http://api.mculover666.cn:9999/twkk/list/hand_made 返回结果: { goods_num: 3, goods_item: [ { goods_id: 1, goods_name: "goods1", goods_img_url: "xxx" }, { goods_id: 2, goods_name: "goods1", go

  • Python 利用flask搭建一个共享服务器的步骤

    零.概述 我利用flask搭建了一个简易的共享服务器,分享给大家 一.python代码 import os import time from flask import Flask,render_template,url_for,redirect,send_from_directory # 共享文件夹的根目录 rootdir = r'C:\Users\Administrator\Downloads\zlkt'   app = Flask(__name__)   @app.route('/doc/'

  • python flask搭建web应用教程

    python flask搭建web应用教程 1.flask介绍 2.所需工具和环境 3.搭建flaskApp 4.具体程序编写 5.综上 1.flask介绍 flask是一款十分轻量级的python Web应用框架,也被认为是一种微框架,我最初喜欢使用是因为flask中提供的那一套使用的注解跟我当时在公司中使用java开发的系统,里面使用的restful的框架jersey的用法比较像,都十分方便,简洁,等到我熟悉使用flask框架之后,就挺喜欢这种微框架了,使用方便,配置简单,也可以进行克重扩展

  • Pyhon Flask框架:第一个Flask程序

    目录 创建Flask项目 app.py介绍 运行Flask程序 总结 Flask框架介绍 Flask诞生于2010年,是Armin ronacher用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架,其本身相当于一个内核,其他几乎所有的功能都要用到扩展,都需要第三方的扩展来实现. 其WSGI工具箱采用Werkzeug(路由模块),模板引擎则使用Jinja2,这两个也是Flask框架的核心,它们分别负责业务处理和安全方面的功能.其中: Werkzeug库:支持URL路由请求集成

  • 基于go-cqhttp与Flask搭建定制机器人项目实战示例

    目录 前言 安装 发送消息 接收消息 后记 前言 许久之前用 Mirai 搭建了 QQ 机器人,不过因为云服务器到期了,QQ 机器人被 迫下线,现如今,可能是意犹未尽,今天就基于 go-cqhttp 与 Flask 搭建定制机器人: 安装 官方安装教程: go-cqhttp 下载地址: 1.前往 go-cqhttp 的下载地址,选择自己需要的版本,下载的话,一般下载这两个中的其中一个: 具体看自己的系统配置,可以通过 arch 指令进行查看: 博主这里是 x86_64,所以选择下载第一个,也就是

  • Python Flask 搭建微信小程序后台详解

    前言: 近期需要开发一个打分的微信小程序,涉及到与后台服务器的数据交互,因为业务逻辑相对简单,故选择Python的轻量化web框架Flask来搭建后台程序.因为是初次接触小程序,经过一番摸索和尝试,个人觉得的微信小程序与后台的交互有点像ajax,所以有ajax开发经验的同学开发小程序应该很容易上手,因为本文着重讲解后台程序的搭建,所以,微信小程序的前端开发将一笔带过,有兴趣学习小程序前端语言的同学可移步网易云课堂的一套快速入门课程<轻松玩转微信小程序>. 分三步讲解微信小程序与Python后台

  • 如何创建一个Flask项目并进行简单配置

    安装的依赖包 flask pymysql flask_script flask_migrate flask_sqlalchemy 创建Flask项目(项目目录结构) flaskexample |---static |---templates |---app.py 在项目下创建settings文件,进行配置 setting.py class DevelopmentConfig: DEBUG = True SQLALCHEMY_DATABASE_URI=mysql+pymysql://用户:密码@h

随机推荐