Django?保姆级地学习Python Web上手框架:Flask基础课程(一)

Django?保姆级地学习Python Web上手框架:Flask基础课程(一)

前言

这不,一年一度的寒假又来啦,又是一次拉开差距,提升自我的机会,这个寒假我打算专门攻击Python,全方位学习。首当其冲的就是Python Web了,为什么看好PyWeb,理由很简单,容易上手,可扩展性高,对于我们来说足够了。

既然学习Web,那肯定需要一个好的框架,工欲善其事,必先利其器。这里我选择的是Flask框架进行学习。对比Django这种重量级的框架,Flask是一种轻量级的框架,它不是保姆级的全部给你配置各种细节,而是全权需要你自己上手,这样你可以从头理解一个框架搭建的起来的原理和过程。

总之,一开始学习不建议学习保姆级的框架,而要进行保姆级的学习。这里不是你一个人,虽然它不是保姆级的框架,但是这里我会带你一起保姆级地学习Flask的各种搭建。

上手Flask

跟着学的网站:Python Web 从入门到实战【完整版】记住这里一定要跟着网站学! 博客只是整理学习资料的,方便后续复习。

环境搭建这里就不多赘述,就是普普通通地pip库,不明白的同学可以看网站教程。

pip install flask

最基础的flask格式:

# 导入类
from flask import Flask, request, url_for, render_template
# 实例化Flask实例
app = Flask(__name__)
'''
    设置路由 默认传输方式为GET
    第一个参数是路由位置,第二个参数是请求方式
    也可以传输参数
'''
# 设置路由,当我们在浏览器中输入“IP地址/”时,就会执行hello_world函数
@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

同理,下面可得

# 使用POST请求
@app.route('/user',methods=['POST'])
def hello_user():
    return 'hello user'
    
# 直接在URL上传入参数,注意这里的格式是:/users/11111,其中’11111‘是传入的id
@app.route('/users/<id>')
def user_id(id):
    return 'hello user_id:' + id

# 同样我们可以通过这种方法来获取传入的id,此时的格式是:/query_user?id=111111
@app.route('/query_user')
def query_user():
    # request.args.get通过获取传入的id
    id = request.args.get('id')
    return 'query user' + id

反向路由

反向路由就是通过你的视图函数反向导出你的URL地址。

写个简单的例子:

# 反向路由:反向路由就是通过你的视图函数反向导出你的URL地址
@app.route('/query_url')
def query_url():
    # 通过url_for('query_user')反向导出query_user的路由地址:/query_user
    return 'query_url:' + url_for('query_user')

这里比较抽象的话附加一张图来理解:
在这里插入图片描述
在以后的开发中,反向路由是经常用到的。

FLask模板

在这里插入图片描述
使用模板,我们可以将HTML,CSS等放在模板中,可以省去很多复杂的代码。

这里我们在同目录下建立一个新的文件夹templates用于存放网页模板。(要注意,存放模板的文件夹名一定要是templates)

@app.route('/totemplates')
def to_temp():
	# 传入content参数
    content_msg = "Hello World!"
    # 这里我们用render_template访问模板,并传入参数content
    return render_template("index.html",content=content_msg)

render_template的功能是对先引入index.html,同时根据后面传入的参数,对html进行修改渲染。

在路由中用:return render_template(‘xxx.html’,变量1=值1,变量2=值2,… …)把参数传递给html文件
在这里插入图片描述
下面我们创建一个User用户类来看看如何传入网页中:
在这里插入图片描述

# 首先引入User类
from models import User
@app.route('/touser')
def to_user():
	# 定义一个User对象,并初始化
    user = User(1,"KID")
    return render_template("user_index.html",user=user)

如果还不理解可以参考一下这张图:
在这里插入图片描述

条件语句

你可以在Python方法中设置条件语句,也可以在模板中设置条件语句。

在Python中的条件语句:

# 判断传入的id是否是符合条件的用户
@app.route('/touser2')
def to_user2():
    # request.args.get通过获取传入的id
    id = request.args.get('id')
    user = None
    if (int(id) == 1):
        # 定义一个User对象,并初始化
        user = User(1, "KID")
        return render_template("user_index.html", user=user)
    else:
        user = User(2, "您不是我的主人")
        return render_template("user_index.html", user=user)

在模板中设置条件语句:
在这里插入图片描述

循环语句

在这里插入图片描述
其中,Python端的语句是这样的:

@app.route('/users')
def user_list():
	# 用一个users数组储存所有用户
    users = []
    for i in range(1,11):
        user = User(i,"用户"+str(i))
        users.append(user)
    return render_template('user_list.html',users=users)

模板的继承

html模板继承: {%block 标记名} {%endblock%}
对于被继承的文件base, 通过写入

{%block 标记%}
{%endblock%}

里面的内容将是被替代的内容,这里就不做过多说明,详细可见这篇文章:html模板继承 {%block 标记名} {%endblock%}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuZou 邹宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值