来自 威尼斯国际官方网站 2019-10-04 13:38 的文章
当前位置: 威尼斯国际官方网站 > 威尼斯国际官方网站 > 正文

Flask开发IDE及入门例子,基本原理与核心知识

虚拟环境

  1. 使用pipenv创建一个虚拟环境和项目绑定,安装:E:pyqiyueflask>python3 -m pip install pipenv
  2. 和项目绑定:到项目的目录中pipenv install,然后pipenv shell,就进入到了虚拟环境中了,然后就可以安装各种包了,比如pipenv install flask,
  3. 常见的pipenv命令,退出exit,进入pipenv shell,安装pipenv install 包名,卸载pipenv uninstall 包名,查看安装包的依赖关系pipenv graph
  4. 与pycharm绑定,在虚拟环境中pipenv --venv,就会显示一个对应的目录,然后在pycharm中选择环境时绑定一下就可以了,这样运行的就是这个虚拟环境了

前几天在进行flask web开发的时候,虽然照猫画虎能够写一些简单的程序,不过感觉基础有点薄弱,经常写着写着就卡壳,很尴尬,所以打算先根据网上的一些开发教程认真学习学习,打好基础,毕竟磨刀不误砍柴!

flask最小原型与唯一URL原则

  1. flaks的最小原型,此时访问http://127.0.0.1:5000/hello就可以看到return的值了
# -*- coding: utf-8 -*-
from flask import Flask
# 实例化
app = Flask(__name__)

@app.route('/hello')
def hello():
    return 'hello'
app.run()
  1. 唯一URL原则,此时若用户访问http://127.0.0.1:5000/hello/网址,因为多了一个斜杠,那么这个页面就找不到,若此时@app.route('/hello/')这里多个一个斜杠,就可以访问了,
  2. 但是此时访问不带斜杠的也是可以的,那时因为flask底层做了一次重定向

Flask IDE配置相关

路由的另一种注册方法

  1. 因为每一次修改完代码还的重启服务器才能看见效果,所以这个时候开启debug模式就可以了,在app.run(debug=True)添加就行了,这样就方便多了
  2. 路由的另一种注册方法,使用app调用add_url_rule()方法就可以了
# -*- coding: utf-8 -*-
from flask import Flask
# 实例化
app = Flask(__name__)

def hello():
    return 'hello'

# 路径,视图函数
app.add_url_rule('/hello',view_func=hello)

app.run(debug=True)
  1. 但是通常的情况下还是使用装饰器就可以了

1、virtualenv的使用

app.run相关参数与flask配置文件

  1. 此时的app.run(debug=True)这个情况下,只有通过127.0.0.1:5000才能访问,即使输入本机ip也不能访问,所以这个时候可以在这个方法中添加参数,此时在地址栏中输入http://192.168.2.14:81/hello也是可以访问的
# host:指定ip地址,输入本机ip也可以访问了,port是改变默认的端口
app.run(host='0.0.0.0',debug=True,port=81)
  1. 若项目上线的话,此时debug模式就不能开启,因为要保持源代码的一致性,所以此时尽量不能删除这个debug,这个时候写一个配置文件,在目录中新建一个config.py
# -*- coding: utf-8 -*-
DEBUG = True
  1. 这个时候在文件中, 先载入这个文件,然后进行读取,注意参数要大写
# -*- coding: utf-8 -*-
from flask import Flask

app = Flask(__name__)
# 载入这个配置文件,这里要注意路径,
app.config.from_object('config')

@app.route('/hello')
def hello():
    return 'hello'
# 读取配置文件中信息
app.run(host='0.0.0.0',debug=app.config['DEBUG'],port=81)

virtualenv简单的理解就是一个虚拟环境,之所以用这个是为了避免不同的开发环境由于python版本而带来的影响,一句话,避免互相干扰。

if name 的作用

  1. 有这个判断的话,只有这个文件作为入口文件的情况下,这个run才会执行
if __name__ == '__main__':
    app.run(host='0.0.0.0',debug=app.config['DEBUG'],port=81)
  1. 生成环境下通常不会使用flask自带的服务器,而是使用nginx+uwsgi,此时这个文件就不是入口文件了,这个时候uwsgi也是一个服务器,若没有加判断就会同时有两个服务器了,所以这个加上判断是必要的

virtualenv安装命令

Response

  1. 视图函数返回的其实就是一个Response,若这样写,此时页面上什么也没有,默认的content-type = text/html
@app.route('/hello')
def hello():
    return '<html></html>'
  1. 返回的有这么几个重要的参数status code,content-type,也可以自定义,此时返回的<html></html>,因为使用的文本解析,当然了还可以返回jsonapplication/json
from flask import Flask,make_response
@app.route('/hello')
def hello():
    # status code 200,404,301,状态码只是一个标识
    # content-type http headers,指定了客户端在接收到数据后用什么方式进行解析
    # content-type = text/html 默认的
    # Response对象
    headers = {
        'content-type':'text/plain',#文本解析
    }
    response = make_response('<html></html>',404)
    response.headers = headers
    return response
  1. 此时还可以进行重定向,只需要把状态码改成301,在headers里添加一个location就可以了,而且还可以写的简洁写,这样就可以了
@app.route('/hello')
def hello():
        headers = {
        'content-type':'text/plain',
        'location':'http://www.bing.com'
    }
    return '<html></html>',301,headers    

pip install virtualenv


virtualenv搭建环境命令


virtualenv venv

这里需要注意,最好安装在开发项目目录下,比如我们的开发目录为followstudy,进入这个目录后,然后在命令行执行。其中venv为虚拟环境的名称,你也可以起名为其他的。安装成功之后的目录结构如下图:

图片 1

安装成功之后,我们需要对项目指定开发环境(叫法可能有点问题),具体的话在pycharm的File->default setting中查找。

图片 2

把上图中蓝色方框的路径设置为刚刚venv环境的路径,比如我们这里是下面的路径。

图片 3

virtualenv环境启用


source venv/bin/activate

图片 4

启用的时候,命令不是固定的,这个命令的venv是可变的,具体的话取决于我们的虚拟环境的命名,总之一句话,需要激活虚拟环境下的bin目录下的activate,启用成功之后,我们可以看到当前命令行前面有一个(venv),以后开发的过程需要先激活这个虚拟环境,然后再进行,另外当我们不需要虚拟环境的话,可以直接在当前命令下输入:deactivate,这样就退出了当前的虚拟环境。

图片 5

flask安装命令


pip install flask

在当前虚拟环境下使用上面的命令,可以快速安装flask及flask所依赖的包。

图片 6

安装成功之后,开始第一个flask的例子——sample,在开始之前,先建议个目录/sample。

图片 7

然后创建sample.py文件,pycharm默认有flask main样例,可以直接copy,也可以进行手打。

图片 8

上面就是flask最基本的一个应用,第一行代码是引入Flask,然后第二行代码是实例化app。第三行代买是装饰器,指定路由的,当访问网址的时候,调用函数index(),然后函数返回“hello world”字符串。
if name == 'main':
app.run(debug=True)
这个是用于启动程序的,说实话,不是很理解,约定俗成吧,debug=True是开启调试模式。
然后我们在命令行下通过 python sample.py运行程序。(注意一定要在sample目录下运行这个命令)

本文由威尼斯国际官方网站发布于威尼斯国际官方网站,转载请注明出处:Flask开发IDE及入门例子,基本原理与核心知识

关键词: