python做web开发已经不是什么新鲜事了,学习之前也查阅过一些资料也和常用作前后端开发的几门编程语言做过一些对比,虽说不一定要使用python做web开发,但还是觉得有必要简单的接触学习一下,也就当成拓宽知识面了
一 常用的python web开发框架
Flask
Flask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过 Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库 入门简单,即便没有多少web开发经验,也能很快做出网站,非常适用于小型网站非常适用于开发web服务的API开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验,各方面性能均等于或优于Django。Django自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库 Flask灵活开发,Python高手基本都会喜欢Flask,但对Django却可能褒贬不一 Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django Flask比Django更加Pythonic,与Python的philosophy更加吻合
Django
Django太重,除了web框架,自带ORM和模板引擎,灵活和自由度不够高。Django能开发小应用,但总会有“杀鸡焉用牛刀”的感觉 Django的自带ORM非常优秀,综合评价略高于SQLAlchemy Django自带的模板引擎简单好用,但其强大程度和综合评价略低于Jinja。Django自带ORM也使Django与关系型数据库耦合度过高,如果想使用MongoDB等NoSQL数据,需要选取合适的第三方库,且总感觉Django+SQL才是天生一对的搭配,Django+NoSQL砍掉了Django的半壁江山 Django目前支持Jinja等非官方模板引擎 Django自带的数据库管理app好评如潮 Django非常适合企业级网站的开发:快速、靠谱、稳定 Django成熟、稳定、完善,但相比于Flask,Django的整体生态相对封闭 Django是Python web框架的先驱,用户多,第三方库最丰富,最好的Python库,如果不能直接用到Django中,也一定能找到与之对应的移植 Django上手也比较容易,开发文档详细、完善,相关资料丰富
二 开发环境的搭建
1 安装virtualenv 命令:pip install virtualenv
2 创建项目文件夹并设置虚拟环境,虚拟环境名称可以自定义
3 激活虚拟环境,方便后面安装flask
激活虚拟环境 : 环境名称\scripts\activate
安装Flask: pip install Flask
4 安装数据操作类库SQLAlchemy
数据库操作也可安装pymysql,使用方法自行百度,推荐原因是复杂sql使用pymysql比较简单,也更具灵活性
三 第一个Flask程序
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/toIndex')
def to_index():
city_list = ["北京", "上海", "昆明", "海口", "福州"]
return render_template("index.html", city_list=city_list)
if __name__ == '__main__':
app.run()
每个需要对外访问的方法需要加路由配置,之后返回数据或者页面,render_template用来返回一个渲染模板页面,页面根据模板语法显示数据
首页
条纹表格布局
编号
城市
{% for item in city_list %}
{{ city_list.index(item) }}
{{ item }}
{% endfor %}
一般情况下静态资源放在项目根目录下面的static文件夹,模板页面放在根目录下的templates文件夹下,可使用url_for引入静态资源,{%%}括起来的部分是python的语法体,{{}}用来取值