Python Web 框架调研|Django|Flask
发布网友
发布时间:2024-09-30 21:35
我来回答
共1个回答
热心网友
时间:2024-10-27 22:39
1 Django
优点:Django是一个高层次Python Web开发框架,以其开发快速、代码较少、可扩展性强而著称。它采用MTV(Model、Template、View)模型组织资源,功能丰富,模板扩展选择最多。对于专业人员来说,Django是Python Web开发框架中的佼佼者。
缺点:包含一些轻量级应用不需要的功能模块,不如Flask轻便。过度封装类和方法,直接使用简单,但改动起来困难。相比于C、C++性能,Django性能偏低。模板实现代码和样式分离,不允许模板中出现Python代码,灵活性不足。此外,学习曲线相对陡峭。
2 Flask
优点:Flask是一个Python Web开发的微框架,仅提供Web服务器支持,不提供全栈开发支持。Flask轻量、简单,基于它搭建Web系统以分钟计,特别适合小微原型系统开发。节省时间、快速产生可用系统,是非常划算的选择。
缺点:对于大型网站开发,需要设计路由映射规则,否则导致代码混乱。对新手来说,容易使用低质量代码创建不良Web应用程序。
3 Flask的使用
代码
在项目中导入Flask模块是强制性的。
Flask构造函数将当前模块的名称(name)作为参数。
Flask类的route()函数是一个装饰器,它告诉应用程序哪个URL应该调用相关的函数。
rule参数表示与该函数绑定的URL。options是要转发给底层Rule对象的参数列表。
在上述示例中,'/' URL与hello_world()方法绑定。因此,在浏览器中打开Web服务器的主页时,将呈现此函数的输出。
最后,Flask类的run()方法在本地开发服务器上运行应用程序。
Flask变量规则
可以通过将可变部分添加到规则参数来动态构建URL。这个变量部分被标记为。它作为关键字参数传递给规则所关联的函数。
在以下示例中,route()装饰器的规则参数包含附加到URL /hello的变量部分。因此,如果在浏览器中输入URL: localhost:5000/hello/nh...,那么‘nhooo’将作为参数提供给hello()函数。
除了默认的字符串变量部分之外,还可以使用以下转换器构造规则-
Flask的URL规则基于Werkzeug的路由模块。这确保了形成的URL是唯一的,并基于Apache制定的先例。
考虑以下脚本中定义的规则-
两条规则看起来都很相似,但在第二条规则中,使用了尾部斜线(/)。因此,它变成了一个规范的URL。因此,使用/python或/python/返回相同的输出。但是,在第一条规则的情况下,URL:/flask/会导致404 Not Found页面。
Flask URL构建
url_for()函数对于动态构建特定函数的URL非常有用。该函数接受函数的名称作为第一个参数,并接受一个或多个关键字参数,每个参数对应于URL的变量部分。
Flask表单处理
我们已经看到,可以在URL规则中指定http方法。URL映射的函数接收到的表单数据可以以字典对象的形式收集,并将其转发给模板在相应的网页上呈现。
在以下示例中,URL => /呈现具有表单的网页(student.html)。填写的数据会提交到触发result()函数的URL => /result中。
results()函数收集字典对象中request.form中存在的表单数据,并将其发送给result.html并显示出来。该模板动态呈现表单数据的HTML表格。
app.py
student.html
result.html
4 Vue+Flask分离
首先用Vite搭一个初始项目。
未完....
5 参考文章
传送门