开发第一个网站
2021/5/15 10:27:45
本文主要是介绍开发第一个网站,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
一、开发简单脚本网站
二、代码分析
2.1 初始化
2.2 路由和视图函数
2.3 启动服务器
一、开发简单脚本网站
相比于另一个Python Web框架Django,Flask更“Python”化一些,因为我们可以在一个.py脚本文件中写完运行整个项目的所有代码。紧跟上一节内容,我们在blog项目下新建一个test.py文件,然后在该文件中填入主运行函数如下:
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "<h1>我的第一个网站</h1>" if __name__ == '__main__': app.run(debug=True)
上面的代码已经开发完成了一个最简单的网站。我们可以先不分析具体的代码,直接执行来看一下效果。我们在终端中输入命令来启动这个项目:
python test.py
正常情况下输出如下所示:
* Serving Flask app 'test' (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: on * Restarting with stat * Debugger is active! * Debugger PIN: 115-661-457 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
如果没有准确输出上面的内容,那么就要检查代码,其中注意__name__和__main__两个地方,这里前后都是两个下划线。
正常启动后我们就可以在浏览器中访问我们的这个网站,网址就在上述输出的最后一行http://127.0.0.1:5000/。效果如下图所示:
可以看到仅仅这么简单的7行代码,我们就构建了一个网站,这就是flask简洁的魅力。下面我们具体分析下代码。
二、代码分析
2.1 初始化
from flask import Flask app = Flask(__name__)
上述代码首先我们从flask中引入Flask类,然后创建一个Flask类的实例app,并且以参数__name__传入(注意,这里的name前后各有两个下划线),这里的__name__是python的内置变量,当你直接执行一段脚本的时候,这段脚本的 __name__变量等于 '__main__', 当这段脚本被导入其他程序的时候,__name__ 变量等于脚本本身的名字。由于我们这里是一个单一的脚本,所以此时这个__name__变量实际执行时它的值为'__main__'。最后需要说明一点的是,我们创建的这个app是在脚本最外层定义的,即它是一个全局变量,在其他函数中可以直接使用这个全局变量。
2.2 路由和视图函数
@app.route('/') def index(): return "<h1>我的第一个网站</h1>"
首先理解两个概念:路由和视图函数。浏览器把请求发送给Flask服务程序,服务程序需要知道针对不同的网址需要运行什么代码,所以保存了一个网址到函数的映射关系,这个映射关系就是路由,一般也用url来表示,而这个路由对应的处理函数就是视图函数。打个比方,例如我们去代收点取快递(发起请求),我们需要将一个快递编号(路由)交给仓库管理员(服务程序),仓库管理员根据这个快递编号再去对应的货架上找货,然后将这个货物扫码一下表示已领取(视图函数),最后将物品交给我们(返回请求结果)。
在Flask 程序中定义路由的最简便方式,就是使用程序实例提供的app.route 修饰器,把修饰的函数注册为路由。例如上面的@app.route('/'),这里'/'表示当前网址根目录。我们可以修改下,改成@app.route('/show'),保存后重新运行下程序,我们会发现访问出错,提示404找不到页面的错误:
如果我们在我们的访问网址后面加上/show,也就是访问这个网址:127.0.0.1:5000/show,我们可以发现又可以重新正常访问了:
到这里,我相信读者已经明白这个路由的含义了。
我们定义的视图函数名为index,函数中没有额外的操作,直接return返回 "<h1>我的第一个网站</h1>",这里使用了html硬编码的方式,也就是将网页页面内容直接以字符串形式写入并返回,返回的html内容是一个带有<h1>的中文字符串。需要说明的是,一般情况我们不会使用这种硬编码的方式将html的内容写入到python代码中,而是采用一种“模板渲染”的技术,后面教程我们会重点讲解。
2.3 启动服务器
if __name__ == '__main__': app.run(debug=True)
启动flask服务器的方式比较简单,直接在主函数中通过app.run()函数即可启动。服务器启动后,会进入轮询,等待并处理结果。我们可以使用快捷键ctrl+c来停止该服务器。这里需要注意一下在启动函数的输入参数中,我们使用了debug=True,表示debug调试模式启动,这种模式在开发阶段比较方便,如果有错误页面会给出错误提示。如果开发调试都已完成,正式部署网站的时候需要将debug设置为False。
这篇关于开发第一个网站的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-04百万架构师第六课:设计模式:策略模式及模板模式
- 2025-01-04百万架构师第七课:设计模式:装饰器模式及观察者模式
- 2025-01-04适用于企业管理的协作工具API推荐
- 2025-01-04挑战16:被限流的CPU
- 2025-01-03企业在选择工具时,如何评估其背后的技术团队
- 2025-01-03Angular中打造动态多彩标签组件的方法
- 2025-01-03Flask过时了吗?FastAPI才是未来?
- 2025-01-0311个每位开发者都应知道的免费实用网站
- 2025-01-03从REST到GraphQL:为什么以及我是如何完成转型的
- 2025-01-03掌握RAG:从单次问答到连续对话