【python-flask学习笔记】1.URL和视图

最近在学习python-flask框架学习,以下为观看知了课堂黄勇老师讲解的教学视频的第一章的学习笔记,坚持下去,加油


1.1 第一个flask程序讲解

(1)第一次创建项目的时候,要添加flask的虚拟环境。添加虚拟环境的时候,一定要选择到python这个执行文件。

比如你的flask的虚拟环境的目录在/user/Virtualenv/flask-env/bin/python。

(2)一个简单flask程序代码的详细注释

#从-flask这个框架中导入Flask这个类
from flask import Flask

#初始化一个Flask对象
#Flask()
#需要传递一个参数__name__
#1.方便Flask框架去寻找资源
#2.方便flask插件比如Flask-Sqlalchemy出现错误的时候,好去寻找问题所在的位置
app = Flask(__name__)

#@app.route是一个装饰器
#@开头,并且在函数的上面,说明是装饰器
#这个装饰器的作用,是做一个url与视图函数的映射
#127.0.0.1:5000/  ->  去请求hello_world这个函数,然后将结果返回给浏览器
@app.route('/')
def hello_world():
    return '我是第一个flask程序'

#如果当前这个文件是作为入口程序运行,那么就执行app.run()
if __name__=='__main__'
    #app.run()
    #启动一个应用服务器,来接受用户的请求
    #while True:
    #    listen()
    app.run()

1.2 设置debug模式

(1)在app.run()中传入一个关键字参数debug,app.run(debug=True),就设置当前项目为debug模式。

(2)debug模式的两大功能:

  * 当程序出现问题的时候,可以在页面中看到错误信息和错误位置。

  * 只有修改了项目中的python文件,程序就会自动加载,不需手动重新启动服务器。

1.3 使用配置文件

(1)新建一个'config.py'文件

(2)在主app文件中导入这个文件,并配置到'app'中,实例代码如下:

import config
app.config.from_object(config)

(3)还有许多二点 其他参数,都是放到这个配置文件中的,比如'SELECT_KEY','SQLALCHEMY'这些配置,都是在这个文件中

1.4 url传参数

(1)参数的作用:可以在相同的URL中,按时指定不同的参数,来加载不同数据。

(2)在flask中如何使用参数:

@app.route('/article/')  #id就是参数变量名
def article(id):
    return '您请求的参数是:%s' % id

  * 参数需要放在两个尖括号中。

  * 视图函数中需要放和url中的参数同名的参数。

  * 参数的数据类型

  • 如果没有指定具体的数据类型,那么默认的就是string类型。
  • int数据类型只能传递int类型。
  • float数据类型只能传递float数据类型。
  • path数据类型和string类型有点类似,都是可以接收任意字符串,但是path可以接收路径,也就是说包括斜杠(/)。
  • uuid数据类型只能接收符合uuid的字符串,uuid是一个全宇宙都唯一的字符串,一般可以用来作为表的主键。
  • any数据类型可以在一个url中指定多个路径,例如:
@app.route('///')
def detail(url_path,id):
    if url_path == 'blog':
        return '博客详情1:%s' % id
    else 
        return '博客详情2:%s' % id

  * 接收用户传递的参数

  • 第一种:使用path的形式(将参数嵌入到路径中,就是上面讲的)。
  • 第二种,就是使用查询字符串的方式,就是通过/?key=value的形式传递的。
@app.route('/d/')
def d():
    wd = request.args.get('wd')
    return '您通过查询字符串的方式传递的参数是:%s' % wd

(3)反转URL

  * 什么是反转URL:从视图函数到url的转换叫做反转url

  * 反转URL的用处:

      a> 在页面重定向的时候,会使用url反转。

      b> 在模板中,也会使用url反转。

1.5 页面跳转和重定向

简单代码如下:

from flask import Flask,redirect,url_for

app = Flask(__name__)

@app.route('/')
def index():
    return '这是首页!'

@app.route('/login/')
def login():
    return '这是登录页!'

@app.route('/detail/')
def detail(is_login):
    if is_login == '1'
        return '这是详情页!'
    else:
        login_url = url_for('login')    #login是视图函数名,注意要用单引号
        return redirect(login_url)
        

if __name__=='__main__'
    app.run(debug=True)

以上笔记来源于知了课堂黄勇老师讲解的教学视频《Flask框架入门到实战开发》的第一章的学习笔记

你可能感兴趣的:(flask学习笔记,flask,python)