flask 程序基本结构 python开发web_1

在这里flask开发web主要介绍一下flask的基本用法,我这里使用的是python3.6,venv 和pycharm

学习自 Flask Web开发实战

首先我们打开pycharm创建一个pythonflask的项目文件红线部分是我们选择的项目文件路径


我用的是最新的pycharm,创建好项目后可以看到pycharm自动为我们创建了venv的子文件夹


这样我们就可以直接使用python的venv独立的虚拟环境,如果不是使用pycharm的小伙伴可以通过命令的方式进行安装下面把教程贴给大家

对于venv不熟悉的小伙伴可以点击这里点击打开链接进行了解

在我们使用这个虚拟环境之前,我们需要先将他激活,Linux和Mac OS X的用户可以通过下面的命令来激活这个虚拟环境

source venv/bin/activate

命令执行后可以看到最前方出现(venv)

windows系统用户可以下面的命令来激活venv

venv\Script\activate

虚拟环境被激活后其中的Python解释器的路径就被添加到了PATH中,但这种改变只会影响当前的命令会话,激活虚拟环境的的命令会修改命令提示符,加入环境名:(venv)

接下来我们使用pip安装我们的flask


这里我们可以看到pip正在为我们的虚拟环境下载安装flask,安装成功后我们可以在项目里的venv下面的bin目录下看到我们刚刚安装的flask


1.路由 和 视图函数

接下来我们来看flask路由的声明路由的,在flak程序中使用app.route修饰器来声明路由

#在项目中导入flask
from flask import  Flask
app = Flask(__name__)

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

if __name__== '__main__':
    #使用run方法来启动Flask集成的开发Web服务器
    app.run()

接下来我们来启动这个项目可以开pycharm的控制台看到输出了这些信息


其中http://127.0.0.1:5000/就是我们的web的访问地址了以后会告诉大家如何修改这个地址和端口等,接下来我们打开浏览器将这个地址复制进去

在这里@app.route('/')使我们的路由def index():就是相对应的视图函数,视图函数和路由一一对,我们可以通过路由找到相对于的视图函数


我们可以看到浏览器输出了我们刚才在‘/’路由方法里面输出的‘Hello World’

接下来我们看一下flask的动态路由

#在项目中导入flask
from flask import  Flask
app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello World'
#动态路由
@app.route('/yourname/<name>')
def yourname(name):
    return '<span>你好,%s !</span>' % name


if __name__== '__main__':
    #使用run方法来启动Flask集成的开发Web服务器
    app.run()

接下来我再在浏览器中输入刚才的地址并拼接上/yourname/(您输入的数据)

这时候我们就可以看到浏览器输出我们return 出来的结果。‘哈哈哈’就是我们从地址传进去路由方法的数据。在@app.route('/yourname/<name>')中尖括号中的内容就是动态部分,flask会将动态部分作为参数传入函数,让函数进行一些我们预定的处理。

ps:在app.run()中我们可以写成  app.run(debug=True) 来开启调试模式

2.请求 

我们先来看看程序和上下文,flask使用上下文临时把某些对象变为全局可访问。在flask中有程序上下文和请求上下文两种上下文全局变量


在flaskweb开发web一书中有一个列子

#在项目中导入flask
from flask import  Flask
#引入rquest模块
from flask import request
app = Flask(__name__)

@app.route('/')
def index():
    user_agent = request.headers.get('User-Agent')
    return "%s" % user_agent

if __name__== '__main__':
    #使用run方法来启动Flask集成的开发Web服务器
    app.run(debug=True)

flask请求钩子:


在flask中有以上四种请求钩子,这里想给小伙伴们了解一下以后会带来使用的教程

重定向:

我们可以通过flask的redirect()辅助函数来进行重定向

#导入redrect
from flask import redirect
#重定向到百度
@app.route('/chong')
def chongdingxiang():
    return redirect('http://www.baidu.com')

redirect()里面的参数就是我们要重定向去的网址,当我们访问http://127.0.0.1:5000/chong的时候就会重定向到百度首页

abort函数

在flask中有一种特殊的响应由abort函数生成,用于处理错误

#引入abort
from flask import abort
#页面返回404
@app.route('/bad')
def bad():
    abort(404)

当我们访问http://127.0.0.1:5000/bad时浏览器会给我返回404页面


 abort不会把控制权还给调用它的函数,而是抛出异常把控制权交给服务器。

Flask扩展

添加扩展样例。

使用Flask-Script支持命令行选项

Flask的开发服务器(不适合生产环境的服务器),支持很多启动设置选项,但是只能在脚本中作为参数传给app.run()函数。

可见,这种方式不是很方便,理想方式:使用命令行参数。

Flask-Script是个Flask扩展,可以实现这个效果。

安装

pip install flask-script
  • 1

转为Flask开发的扩展都暴露在flask.ext命名空间下。

Flask-Script输出了一个名为Manager的类,从flask.ext.script中引入。

这种扩展的初始化方法适用于其他很多扩展:把程序实例作为参数传递给构造函数,像是托管。

不引入扩展的程序由`app.run()启动服务器,引入此扩展的,就交给扩展来启动服务器。

if __name__ == '__main__':
    manager.run()
  • 1
  • 2

启动服务器:py hello.py runserver

也可以指定参数:py hello.py runserver --host 0.0.0.0

下一节会给大家带来flask模板的使用

如果遇到问题的话可以加我qq讨论一下 1311353736




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值