当前位置: 首页 > wzjs >正文

网站界面 ui 设计答案百度关键词排名批量查询

网站界面 ui 设计答案,百度关键词排名批量查询,学习做网站的孛校,网站做问卷调查的问题文章目录前言简介安装基础编程requirements文件的使用路由Jinja2Restful参考资料前言 本文内容为参考网络资源,学习整理得出,仅供学习使用,参考资料在文末,若有侵权,立即删除。 简介 Flask是轻量级的Pyhton的Web框架 …

文章目录

  • 前言
  • 简介
  • 安装
  • 基础编程
    • requirements文件的使用
    • 路由
    • Jinja2
    • Restful
  • 参考资料

前言

本文内容为参考网络资源,学习整理得出,仅供学习使用,参考资料在文末,若有侵权,立即删除。

简介

Flask是轻量级的Pyhton的Web框架

安装

pip install flask

基础编程

requirements文件的使用

Python项目中必须要有一个requirements.txt文件来记录依赖包及具体版本号,以便在新环境中部署

  • 将当前虚拟环境中的所有依赖包及其版本号生成到requirement.txt文件中:pip freeze > requirements.txt
  • 在新环境中安装项目所需的所有特定版本的依赖包:pip install -r requirements.txt

路由

  • URL与视图
@app.route('/hello', methods = ['GET', 'POST'])
def hello_world():  return 'Hello World'
  • 默认为GET方法
  • 路由参数处理
@app.route('/hello/<id>')
def hello_world(id):  if id == str(1):return 'flask'else:return 'Hello World'
  • <>为正则匹配(注:默认传递的idstring类型如果要在代码中匹配<>中内容,需要以字符串形式进行判断或匹配);也可在<>中指定类型,如@app.route('/hello/<string:id>')@app.route('/hello/<int:id>')
  • 根据路由显示相应内容
@app.route('/hello/<id>')
def hello_world(id):  return 'Hello World %s' % id
  • request包含前端发送的所有请求数据。(request.method获取请求方式)
  • 重定向302:redirect(...)
  • 返回json数据给前端:
app.config['JSON_AS_ASCII'] = False
return jsonify(...)
  • abort函数(在页面中抛出异常):abort(404)
  • 自定义异常
@app.errorhandler(404)
def handle_404_error(err):...
  • 消息闪现:flash(u'测试')

Jinja2

Jinja2是由Python实现的模板语言

  • 模板渲染
    • 展示index.html网页
@app.route('/')
def hello_world():return render_template("index.html")
  • HTML中的参数使用
    • 注释:{#注释#}
    • 变量代码块:{{url}}
    • 通常,模板中使用的变量名和要传递的变量名保持一致。
    • 控制代码块:{% if a == 1 %}
@app.route('/<my_id>')
def hello_world(my_id):return render_template("index.html", my_id = my_id)
  • 过滤器
    • 自定义过滤器
      • 注册过滤器:app.add_template_filter(自定义函数名字,'用时的名字')
  • WTF表单
    • 定义表单模型类
class Test(FlaskForm):uname = StringField(label = '用户名', validators = [DataRequired('用户名不能为空')])...submit = SubmitField('label = '提交')
  • 使用表单
@app.route('/test')
def test():form = Test()return render_template('test.html', form = form)
  • 验证器validate_on_submitform.validate_on_submit()

Restful

REST(Representational State Transfer)表现层状态转换

  • 详见Flask Restful官方文档
  • 前后端分离,前后端都遵循Restful编程规范,开发效率高,便于管理。
  • 协议使用httphttps协议;数据传输应采用json格式;url中不能有动词,只能有名词,且名词要注意单复数;状态码。
  • 安装:pip install flask-restful
  1. Restful API的要素
    1. 端点-URL
    2. HTTP请求方式
      • GET:获取数据
      • POST:新增数据
      • PUT:修改数据
      • DELETE:删除数据
    3. 头部信息(Request,Response)
    4. 请求数据(要发送给服务的具体数据)
  2. 基本使用
  • 引入flask-restful
from flask_restful import Api
api = Api(app)
  • 定义资源类:写一个类视图(继承子Resource类),在其中定义响应的请求方法(如getpost等);最后使用api.add_resource来添加类视图与url
from flask_restful import Resource
class ManResource(Resource):def get(self, id):return {'id': id, 'name': 'Tom'}def put(self, id):return {'id': id, 'name': 'Mike'}...
api.add_resource(ManResource, '/man/<id>')
  • 可以指定多个url,也可传递参数。
  1. 参数验证(参数解析)
  • 通过flask_restful.reqparseRequestParser建立解析器
  • 通过RequestParser中的add_argument方法定义字段与解析规则
  • 通过RequestParser中的parse_args来解析参数
    • 解析正确:返回正确的参数
    • 解析错误:返回错误信息给前端
from flask import Flask
from flask_restful import Api, Resource
from flask_restful.reqparse import RequestParserapp = Flask(__name__)
api = Api(app)class RegisterView(Resource):def post(self):# 建立解析器parser = RequestParser()# 定义数据的解析规则parser.add_argument('username',type=str,required=True, trim = True, help = '用户名不符合规范')parser.add_argument('age', type=int, help='年龄验证错误')parser.add_argument('gender', type=str, choices = ['男', '女', '保密'], help = '性别验证错误')# 解析数据:正确,直接获取参数;错误,反馈到前端args = parser.parse_args()print(args)# 响应数据return {'msg': '注册成功'}api.add_resource(RegisterView, '/register/')if __name__ == '__main__':app.run()
  1. add_argument方法参数
  • default:默认值
  • required:是否必须,默认为False,若为True则这个参数必须提交。
  • type:这个参数的数据类型,可以为intstr等,也可以为:urlregexdate(若文件类型:FileStorage
  • choices:固定选项
  • help:错误信息
  • trim:是否去掉前后空格
  1. 规范返回值
  • 导入flask_restful.marshal_with装饰器
  • 定义一个字典变量来指定需要返回的标准化字段以及该字段的数据类型。
from flask import Flask
from flask_restful import Api, Resource, fields, marshal_withapp = Flask(__name__)
api = Api(app)class Test_0():def __init__(self, code, msg):self.code = codeself.msg = msgclass Test(Resource):resource_fields = {'code':fields.Integer,'msg':fields.String}@marshal_with(resource_fields)def get(self):return {'code':200, 'msg': '访问成功'}@marshal_with(resource_fields)def post(self):return {'msg': '注册成功'}@marshal_with(resource_fields)def put(self):# 在返回对象时会自动获取约定好的字段,并封装成json返回test = Test_0(404, 'OK')return testapi.add_resource(Test,'/test/')if __name__ == '__main__':app.run()
  • 自定义fields
    • 写一个类继承Raw
    • 重写format方法
    class My_fields(Raw):def format(self):return 结果
    
  • 实现“点击跳转url”:定义两个fields
  • 参数设置
    • 设置重命名属性:使用attribute,重命名后属性名称与后端数据库等操作字段匹配(实现前端显示与后端命名不一致)
    • 设置默认值:使用default(约束字段中的默认值的优先级低于真实数据默认值的优先级)
from flask import Flask
from flask_restful import Api, Resource, fields, marshal_withapp = Flask(__name__)
api = Api(app)class Test_0():def __init__(self, code, message):self.code = codeself.message = messageclass Test(Resource):resource_fields = {# 通过default设置默认值'code':fields.Integer(default=666),# 通过attribute设置返回值'msg':fields.String(attribute = 'message')}@marshal_with(resource_fields)def get(self):test = Test_0(404, 'OK')return test@marshal_with(resource_fields)def post(self):return {'message': '测试'}
api.add_resource(Test,'/test/')if __name__ == '__main__':app.run()
  • 类型设置
    • fields.List()存放一个列表
    • fields.Nested()存放一个字典
    • 若要返回自定义类的对象
      • marshal(对象, 对象的fields格式)marshal([对象, 对象], 对象的fields格式)
      • @marshal_with(my_fields)函数需要参数,参数就是最终的数据输出格式。
  1. 结合蓝图使用
  2. 渲染模版
  • 使用api.representation装饰器定义函数,在函数中对html代码进行封装,再返回。(api.representation装饰器修饰的函数必须返回一个Response对象)
  1. 生成swagger文档
    使用pip install安装apispecflask apispecPyYAML或在requirements.txt中添加这几个包及具体版本号。
  • CBV(Class Based View)类视图
  • FBV(Function Based View)函数视图

参考资料

  • 黑马程序员-6节课入门Flask框架web开发视频
  • 2025版-零基础玩转Python Flask框架-学完可就业
  • 3小时带你快速入门Python Flask框架,零基础入门到精通!学不会我退出IT界!Web开发 | 教程 | 前端 | 后端 | 全栈
  • 千锋教育Flask2框架从入门到精通,Python全栈开发必备教程
  • 合集·Flask Restful API教程
  • Flask自用教程
  • 【千锋】零基础玩转Python_Flask(flask快速上手)
http://www.dtcms.com/wzjs/518308.html

相关文章:

  • 90平方装修价格明细海淀区seo引擎优化
  • 如何网页优化深圳债务优化公司
  • 网站建设熊猫建站百中搜
  • 网站续费如何做分录网络推广的渠道和方式有哪些
  • 做网编去网站还是工作室好seo运营是做什么的
  • 手机上能搭建网站吗搜索引擎原理
  • 越策网站建设网站生成
  • 济南网站建设app百度seo推广计划类型包含
  • 成立公司注册资本需要实缴吗网页seo是什么意思
  • 哪些网站设计的比较好app推广赚钱平台
  • discuz 调用 wordpress北京网站sem、seo
  • 让公司做网站要注意什么在百度做广告多少钱
  • 在线网站软件免费下载安装厦门百度seo点击软件
  • 网站建设找酷风优化措施最新回应
  • 网站开发z亿玛酷1专注bt磁力猪
  • 学习型网站空间郑州seo外包平台
  • 广州电子商务网站建设费用百度推广怎么赚钱
  • 赣州企业网站在那做百度站长号购买
  • 甘肃省住房建设厅网站证书查询新手怎么推广自己的店铺
  • ftp网站后台四年级写一小段新闻
  • 重庆建工集团建设网站哪些网站推广不收费
  • 移动商城网站建设 深圳河南整站百度快照优化
  • 佛山市桂城建设局网站怎么免费建个人网站
  • 广州市建设和水务局网站广州seo网络优化公司
  • 静安区营业执照办理地点整站seo排名费用价格
  • 企业网站优化推广公司超级优化空间
  • 网络规划设计师历年考点百度seo培训公司
  • 网站越来越难做百度点击软件找名风
  • 专门做衣服特卖的网站有哪些广告联盟赚钱app
  • 衡水冀县做网站重庆网站推广专家