Flask ---- 入门级教程 之 笔记

1.B/S项目最基本的原理:基于请求和响应 browser浏览器/server服务器


2.浏览器向服务器发送请求,服务器响应浏览器


3.Flask和Django一样都是web框架用于制作B/S网页程序


4.flask中需要下载扩展包

安装指令 pip install ***

扩展脚本包  flask_script Manager

操作数据库  flask_sqlalchemy SQLAlchemy

迁移数据库  flask_migrate  Migrate MigrateCommand


5.安装虚拟环境

pip  install virtualev/virtualenvwrapper

mkvirtualenv myflask;创建虚拟环境

rmvirtualenv myflask;删除虚拟环境

activate myflask;激活虚拟环境

在虚拟环境里面可以安装多个版本的Django或者Flask

workon myflask;进入虚拟环境

pip list      展示虚拟环境中的配置信息


6. 创建flask项目

从falsk中导入Flask类

from flask import Flask

实例化Flask类

app=Flask(__name__)

用装饰器实现路由跳转

@app.route('/')

函数页面显示内容 以及渲染模板

def index():

username='幼姿沫'

password='123456'

msg='登陆页面成功'

login_dict={

"name":"易烊千玺",

"age":"20",

"gender":"男"

}


1.直接跳转到信息页面

return 'first Flask Object'


2.跳转页面+参数

return render_template('index.html',username=username,password=password,msg=msg)

#json格式

login_dict={

"name":"易烊千玺",

"age":"20",

"gender":"男"

}

#jsonify将字典格式转化为了字符串形式

for i,j in login_dict.items():

print(jsonify(login_dict),i,j)


3.return jsonify(login_dict)

页面效果展示:

{

"age": "20",

"gender": "\u7537",

"name": "\u6613\u70ca\u5343\u73ba"

}

#控制台显示内容

name 易烊千玺

age 20

gender 男


4.路径重定向 跳转到某个网页地址  也可以是网络地址

return  redirect('http://www.baidu.com')

url_for的作用是路径反向解析

return redirect(url_for(函数名))

运行flask项目

if __name__=='main':

app.run(debug=True)


7.配置信息类


第一种方法

class Config(object):

DEBUG=True

PORT=6000

SQLALCHEMY_DATABASE_URI='mysql://username:password@ip地址:端口号/数据库名称'

SQLALCHEMY_TRACK_MODIFICATIONS=True

SQLALCHEMY_COMMIT_ON_TEAR=True

SQLALCHEMY_ECHO=True

#从上面读取配置信息

app.config.from_object(Config)


第二种方法

从配置文件中加载配置信息

config.ini

Debug=True

app.config.from_pyfile('config.ini')


第三种方法

在运行命令上直接添加配置信息

if __name__=='main':

app.run(debug=True,port=8000)


8.路由传参数


[email protected]('/路径/<类型:变量>')

#根据id找到用户资料  ----> id

@app.route('/userinfo/')

def userinfo(id):

print('id * ', id)

return 'id * %s' % id

#页面展示

详情展示


2.请求类型get/post

get:    查询

post:  增加

#请求只能通过ajax或者测试工具模仿

put:    修改

delete: 删除


9.转换器的本质 通过正则表达式来匹配路由地址

#参数只是接受三位整数

@app.route('/users/("\d{3}"):num')

#路由中参数为手机号码

@app.route('/users/自定义转换器<("1[3 4 5 6 7 8]\d{9}"):phone>')

自定义转换器

实现步骤


1.继承BaseConverter  重写父类中的初始化方法

class MyReConverter(BaseConverter):

def __init__(self,url_map,regex):

super(MyReCoverter,self).__init__(url_map)

self.regex=regex


2.将自己的转换器添加到默认的转换器字典中

app.url_map.converters['re']=MyReConverter


3.用自定义转换器,实现自定义规则的匹配

#验证数字为三位整数

@app.route('/checkscore/')

def check_score(num):

print('成绩为 * %s' % num)

return '您的成绩为 * %s ' % num

flask中默认的两个初始化模块 werkzeug jinja2

#用自定义转换器验证手机号码的规则

@app.route('/checkphone/')

def checkphone(phone):

print('手机号码为 * ',phone)

return '手机号码为 * %s' % phone

你可能感兴趣的:(Flask ---- 入门级教程 之 笔记)