基于python的web应用开发实战_《Flask Web开发:基于Python的Web应用开发实战》1day...

《Flask Web开发:基于Python的Web应用开发实战》

想跟着学一遍flask,做一个博客,重点是做网页。希望,在之后的学习中,不要忘记重点以及不要放弃(还没怎么坚持过)。

---题记

1. 安装

1.1 准备

在pycharm中新建了flask虚拟环境之后默认加载的flask程序:

F1

from flask import Flask

app = Flask(__name__)

@app.route('/')

def hello_world():

return 'Hello World!'

if __name__ == '__main__':

app.run()

---->

1395550-20200224222052495-388409707.png

2.程序的基本结构

2.1初始化

1395550-20200224222051397-399202544.png

__name__是根目录的名字?

2.2路由和视图函数

路由

1395550-20200224222048350-1195259042.png

1395550-20200224222047670-1047548718.png

1395550-20200224222046994-598773046.png

视图函数

1395550-20200224222045956-394511483.png

由上图可以发现。

route里面的路由‘/’不必非要和下面的函数名字一致,也可。

之前,怎么写成一样,不一样还不行的?

1395550-20200224222043643-690620885.png

1395550-20200224222041929-682692373.png

2.3启动服务器

1395550-20200224222040942-1199741127.png

2.4一个完整的程序

1395550-20200224222039346-1426997030.png

1395550-20200224222038656-1582482919.png

1395550-20200224222038067-117730401.png

1395550-20200224222037372-1303810656.png

F2

1395550-20200224222036695-38654243.png

2.5请求-响应循环

1395550-20200224222035386-1648236911.png

2.5.1程序和请求上下文

django程序写法

1395550-20200224222034605-1518616084.png

上下文中多个request

1395550-20200224222033294-1388541852.png

程序和请求上下文1395550-20200224222031572-1794195584.png

1395550-20200224222029716-2024386553.png

2.5.2请求调度

1395550-20200301135115414-708585940.png

2.5.4请求钩子

1395550-20200301135114778-612715803.png

2.5.4响应

1395550-20200301135114071-885388374.png

1395550-20200301135113448-1655447007.png

控制权?web服务器

F2

from flask import redirect

from flask import Flask

app = Flask(__name__)

@app.route('/')

def index():

return redirect('https://www.baidu.com')

# if __name__=='__main__':

app.run(debug=True)

Warning1:

Silently ignoring app.run() because the application is run from the flask command line executable. Consider putting app.run() behind an if name== "main" guard to silence this warning.app.run(debug=True)

2.6Flask扩展

1395550-20200301135112954-303977353.png

社区里扩展不够,去Python标准库或代码库。

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

1395550-20200301135112465-599730725.png

安装:

pip install flask-script

干啥的?

error1

ModuleNotFoundError: No module named 'flask.ext' 的解决方法

出现该问题主要原因是新版的flask抛弃了flask.ext这种引入扩展的方法,更改为 flask_扩展名

例如:

以前:from flask.ext.script import Manager

现在:from flask_script import Manager

F3

from flask_script import Manager

from flask import Flask

app = Flask(__name__)

manager = Manager(app)

if __name__ == '__main__':

manager.run()

解析命令行的功能?

1395550-20200301135111940-167393639.png

1395550-20200301135111438-1586648350.png

1395550-20200301135110765-370106322.png

看了半圈,没明白讲的什么?

大概是支持在shell后面扩展端口或者程序的。

网上的资料:通过使用Flask-Script扩展,我们可以在Flask服务器启动的时候,通过命令行的方式传入参数。而不仅仅通过app.run()方法中传参,比如我们可以通过python hello.py runserver –host ip地址,告诉服务器在哪个网络接口监听来自客户端的连接。默认情况下,服务器只监听来自服务器所在计算机发起的连接,即localhost连接。我们可以通过python hello.py runserver --help来查看参数。

Flask-Script插件为在Flask里编写额外的脚本提供了支持。包括了一个开发服务器,一个定制的Python命令行,用于执行初始化数据库、定时任务和其他属于web应用之外的命令行任务的脚本

2.

Flask-Script还可以为当前应用添加脚本命令

"""自定义flask_script终端命令"""

from flask_script import Manager

from flask import Flask

app = Flask(__name__)

from flask_script import Command

manager = Manager(app)

class HelloCommand(Command):

"""命令的相关描述"""

def run(self):

with open("text.txt", "w") as f:

f.write("hello\r\nhello")

pass

print("这是执行了hello命令")

manager.add_command('hello', HelloCommand())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值