Flask入门(一)

知识背景:Python 基础知识;零Flask框架基础。

Url 的认识:

Url协议分类

1、如果是http协议,那么浏览器会使用80端口。
2、如果是https协议,那么浏览器会使用443端口。

Url详解

1、一个url由以下几部分组成:
scheme://host:port/path/?query-string=xxx#anchor
其中:

  • scheme:协议名
  • host:主机名
  • port:端口
  • path:查找路径
  • query-string:查询字符串
  • anchor:锚点

web服务器和应用服务器以及web应用框架

: 1、web服务器:处理http请求,相应静态文件。(Apache, Nginx, IIS)。
2、应用服务器:处理逻辑,比如php,python的代码,不能通过web服务器,只能通过应用服务器,常见的应用服务器有uwsgi,tomcat(java用)等。
3、web应用框架:封装了常用web功能的框架(Flask,Django)(SSH(java用))等。

第一个Flask程序

# encoding : utf-8
from flask import Flask

app = Flask(__name__)


@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':#这行意思是:如果当前这个文件是作为入口程序运行的话,就执行app.run()
    app.run()

Debug模式

启动方法:在app.run()中传入关键字参数’debug’。app.run(debug = True),就进入了Debug模式。

Debug 模式的两大功能:

  • (1)当程序出现问题的时候可以在页面中查看到错误信息和出错的位置。
  • (2)只要修改了项目中的‘.py’文件,程序就会自动加载,不需要手动重新启动服务器。

使用配置文件config.py

import config
app.config.from_object(config)

#然后在新建的config.py中设置
DEBUG=True#即可

#此外还有很多其他参数后期都是放在配置文件中,比如
SECRET_KEY=
SQLALCHEMY=
#后面会提到

Url传参数

参数的作用: 可以使用一样的url,但是可以指定不同的参数,来加载不一样的内容。
在Flask中的使用,以article为例:
@app.route('/article/<id>')  
                     #↑参数需要放在'<>'中
def article(id):#←视图函数中需要放和url中的参数同名的参数
    return u'您请求的参数是:%s' % id

反转Url

反转Url的作用:
- 1、在页面重定向的时候,一般会使用url反转
- 2、在模板中也会使用url反转。

一个小例子:

from flask import Flask , url_for

app = Flask(__name__)

@app.route('/')
def index():
    #通过my_list这个名字指向my_list的url
    print (url_for('my_list'))
    #通过article这个名字和ABC这个id指向article在参数为ABC情况下的页面
    print (url_for('article', id = 'ABC'))
    return 'Hello, World!'

@app.route('/list/')
def my_list():
    return 'list'

@app.route('/article/<id>')
def article(id):
    return u'您所请求的参数是:%s' % id

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

页面跳转和重定向

用处:在用户访问一些需要登录的页面的时候,可以让他重定向到登录页面。

# encoding : utf-8
from flask import Flask , url_for ,redirect

app = Flask(__name__)

@app.route('/')
def index():
     #&&***重定向代码实现***&&
    login_url = url_for('login')
    return redirect(login_url) 
     #&&***重定向代码实现***&&
    return '这是页面'

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

@app.route('/question/<is_login>/')
def question(is_login):
    if is_login == '1':
        return '这是发布页面'
    else:
        return redirect(url_for('login'))

if __name__ == '__main__': 
    app.run(debug=True)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值