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

济南网站建设系统介绍服务网站地图wordpress

济南网站建设系统介绍服务,网站地图wordpress,长沙营销型网站制作,不用模板 网站#x1f44f;作者简介#xff1a;大家好#xff0c;我是爱敲代码的小王#xff0c;CSDN博客博主,Python小白 #x1f4d5;系列专栏#xff1a;python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 #x1f4e7;如果文章知识点有错误… 作者简介大家好我是爱敲代码的小王CSDN博客博主,Python小白 系列专栏python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 如果文章知识点有错误的地方请指正和大家一起学习一起进步 如果感觉博主的文章还不错的话请三连支持一下博主哦 博主正在努力完成2023计划中以梦为马扬帆起航2023追梦人 python入门到实战专栏从入门到实战  Python爬虫开发专栏从入门到实战  Python办公自动化专栏从入门到实战 Python数据分析专栏从入门到实战 Python前后端开发专栏从入门到实战 文章目录 模板继承  继承模板实战  add_url_rule与app.route 类视图 类视图的好处 类视图使用场景 基于调度方法的类视图 模板继承  为什么需要模版继承 模版继承可以把一些公用的代码单独抽取出来放到一个父模板中以后子模板直接继承就可以使用了。这样可以重复的利用代码并且以后修改起来也比较方便 模版继承语法 使用 extends 语句来指明继承的父模板。父模板的路径也是相对于 templates 文件夹下的绝对路径 {% extends base.html %} block语法 一般在父模版中定义一些公共的代码。子模板可能要根据具体的需求实现不同的代码。 这时候父模版就应该有能力提供一个接口让子模板来实现。从而实现具体业务需求的功能。 父模板 {% block block的名字 %} {% endblock %} 子模板 {% block block的名字 %} 子模板中的代码 {% endblock %} 调用父模版代码block中的代码 默认情况下子模板如果实现了父模版定义的block。那么子模板block中的代码就会覆盖掉父模板中的代码。如果想要在子模板中仍然保持父模板中的代码那么可以使用 {{ super() }} 来实现 父模板  {% block block_body %}p stylebackground-color: blue我是父模版block_body处的内容/p {% endblock %} 子模板 {% block block_body%}{{ super() }}p stylebackground-color: green我是子模版block_body处的内容/p {% endblock %} 调用另外一个block中的代码 如果想要在另外一个模版中使用其他模版中的代码。那么可以通过 {{ self.其他block名字() }} 就可以了 {% block title %}txc首页 {% endblock %} {% block block_body%}{{ self.title() }}p stylebackground-color: green我是子模版block_body处的内容/p {% endblock %} 注意 1. 子模板中的代码第一行应该是 extends 2. 子模板中如果要实现自己的代码应该放到block中。如果放到其他地方那么就不会被渲染 继承模板实战  实现如下页面需要使用 1、模板继承 2、引入静态资源 add_url_rule与app.route add_url_rule add_url_rule(rule,endpointNone,view_funcNone) 这个方法用来添加url与视图函数的映射。如果没有填写 endpoint 那么默认会使用 view_func 的名字作为 endpoint 。以后在使用 url_for 的时候就要看在映射的时候有没有传递 endpoint 参数如果传递了那么就应该使用 endpoint 指定的字符串如果没有传递那么就应该使用 view_func 的名字。 def my_list():return 我是列表页app.add_url_rule(/list/,endpointsxt,view_funcmy_list) app.route原理剖析 这个装饰器底层其实也是使用 add_url_rule 来实现url与视图函数映射的。 from flask import Flask,url_forapp Flask(__name__)app.route(/,endpointindex) def index():print(url_for(show))print(url_for(index))return Hellodef show_me():return 这个介绍信息# endpoint 没有设置url_for中就写函数的名字如果设置了就写endpoint的值 app.add_url_rule(/show_me,view_funcshow_me,endpointshow) # app.route 底层就是使用的 add_url_ruleif __name__ __main__:app.run(debugTrue) 类视图 之前我们接触的视图都是函数所以一般简称函数视图。其实视图也可以基于类来实现类视图的好处是支持继承但是类视图不能跟函数视图一样写完类视图还需要通过app.add_url_rule(url_rule,view_func) 来进行注册 标准类视图使用步骤 1. 标准类视图必须继承自 flask.views.View 2. 必须实现 dispatch_request 方法以后请求过来后都会执行这个方法。 这个方法的返回值就相当于是之前的视图函数一样。也必须返回 Response 或者子类的对象或者是字符串或者是元组。 3. 必须通过 app.add_url_rule(rule,endpoint,view_func) 来做url与视图的映射。 view_func 这个参数需要使用类视图下的 as_view 类方法类转换ListView.as_view(list) 。 4. 如果指定了 endpoint 那么在使用 url_for 反转的时候就必须使用 endpoint 指定的那个值。如果没有指定 endpoint 那么就可以使用 as_view(视图名字) 中指定的视图名字来作为反转。 from flask import Flask,url_for from flask.views import View app Flask(__name__)app.route(/) def index():# print(url_for(mylist))print(url_for(my))return Helloclass ListView(View):def dispatch_request(self):return 返回了一个List的内容 #app.add_url_rule(/list,view_funcListView.as_view(mylist))app.add_url_rule(/list,endpointmy,view_funcListView.as_view(mylist))# 用于测试 with app.test_request_context():print(url_for(my))if __name__ __main__:app.run(debugTrue) 类视图的好处 1.可以继承把一些共性的东西抽取出来放到父视图中子视图直接拿来用就可以了。  2.但是也不是说所有的视图都要使用类视图这个要根据情况而定。视图函数用得最多。 from flask import Flask,jsonify from flask.views import Viewapp Flask(__name__)# 需求返回的结果都必须是json数据 class BaseView(View):def get_data(self):raise NotImplementedErrordef dispatch_request(self):return jsonify(self.get_data())class JsonView(BaseView):def get_data(self):return {uname:吕布,age:20}class Json2View(BaseView):def get_data(self):return [{name:艾派徳,lua:Python},{name:程序员,lua:Python},]app.add_url_rule(/base,view_funcBaseView.as_view(base)) app.add_url_rule(/json,view_funcJsonView.as_view(json)) app.add_url_rule(/json2,view_funcJson2View.as_view(json2))if __name__ __main__:app.run(debugTrue) 类视图使用场景 from flask import Flask,render_template from flask.views import Viewapp Flask(__name__)class BaseView(View):def __init__(self):self.msg {main:又更新了123}class LoginView(BaseView):def dispatch_request(self):my_msg 神奇的登录功能self.msg[my_msg] 神奇的登录功能# return render_template(login.html,msg self.msg.get(main),my_msg my_msg)return render_template(login.html,**self.msg)class RegisterView(BaseView):def dispatch_request(self):self.msg[my_msg] 快捷的注册功能# return render_template(register.html,msg self.msg.get(main),my_msg my_msg)return render_template(register.html,**self.msg)app.add_url_rule(/login,view_func LoginView.as_view(login)) app.add_url_rule(/register,view_func RegisterView.as_view(register))if __name__ __main__:app.run(debugTrue) 基于调度方法的类视图 1. 基于方法的类视图是根据请求的 method 来执行不同的方法的。如果用户是发送的 get 请求那么将会执行这个类的 get 方法。 如果用户发送的是 post 请求那么将会执行这个类的 post 方法。其他的method类似比如 delete 、 put 2. 这种方式可以让代码更加简洁。所有和 get 请求相关的代码都放在 get 方法中所有和 post 请求相关的代码都放在 post 方法中。就不需要跟之前的函数一样通过 request.method GET 案例  HTML form action/login/  methodposttabletrtd账号/tdtdinput typetext nameuname/td/trtrtd密码/tdtdinput typepassword namepwd/td/trtrtd/tdtdinput typesubmit value立即登录/td/trtrtd colspan2{# font  colorred{{ error }}/font#}{# 优化写法 判断 #}{% if error %}font  colorred{{ error }}/font{% endif %}/td/tr/table /form python #定义一个基于方法调度的 类视图 class  LoginView(views.MethodView):def get(self):return  render_template(login.html)def post(self):#模拟实现#拿到前端页面传过来的 账号 和密码 去数据库做查询操作 查询到 (跳转主页面) ,反之跳转到login.html页面并给出错误提示信息uname request.form[uname]pwd request.form[pwd]if  unameaps  and  pwd 123:return  render_template(index.html)else:return  render_template(login.html,error用户名或者密码错误)# 注册类视图 app.add_url_rule(/login/, view_funcLoginView.as_view(my_login)) 改进1 class  LoginView(views.MethodView):def get(self,errorNone):return  render_template(login.html,errorerror)def post(self):#模拟实现#拿到前端页面传过来的 账号 和密码 去数据库做查询操作 查询到 (跳转主页面) ,反之跳转到 login.html页面并给出错误提示信息uname request.form[uname]pwd request.form[pwd]if  unameaps  and  pwd 123:return  render_template(index.html)else:return  self.get(error用户名或者密码错误)# 注册类视图 app.add_url_rule(/login/,view_funcLoginView.as_view(my_login)) 改进2 基于调度方法的类视图, 通常get()方法处理get请求,post()方法处理 post请求, 为了便于管理,不推荐post方法和get方法互相调用 class LoginView(views.MethodView):  def __jump(self,errorNone):   return render_template(login.html, errorerror)  def get(self, errorNone):    return self.__jump()  def post(self):    # 模拟实现    #拿到前端页面传过来的 账号 和密码 去数据库做查询操作 查询到 (跳转主页面) ,反之跳转到 login.html页面并给出错误提示信息    uname request.form[uname]   pwd request.form[pwd]    if uname sxt and pwd 123:return render_template(index.html)    else:      return self.__jump(error用户名或者密码错误)# 注册类视图app.add_url_rule(/login/,view_funcLoginView.as_view(my_login))
http://www.dnsts.com.cn/news/65094.html

相关文章:

  • 网站架构设计师待遇怎么样深圳小程序定制
  • 网页制作工具的选择与网站整体风格摄影建设网站
  • 杭州建设职业学校官方网站网站语言是什么
  • 网站运营主要做什么工作网站内链怎么优化
  • 郑州网站推广培训工作证明模板 通用版
  • 上海嘉定建设局网站西安旅游攻略2天自由行攻略
  • ui设计师作品集网站珠海建设网站首页
  • 如何做网站迁移山东省住房与建设厅网站首页
  • 昆明建设银行纪念币预约网站网页如何赚钱
  • 兰州网站设计公司哪家最好wordpress两个导航栏
  • 手机高端网站建设球形网架公司
  • 济南建设厅网站广州app开发价格表
  • 美丽乡村建设网站模板数字营销推广平台
  • 山东广饶建设银行网站网站架设教程
  • 怎么提交网站关键词wordpress后台界面样式
  • 51制作工厂网站东莞建设局网站
  • 千助做网站怎么样asp.net做网站的优势
  • seo网站建设网站建设用自助建站系统好不好
  • 天津河东做网站公司wordpress 搜索引擎收录
  • 建设厅执业资格注册中心网站部队内网网站建设方案
  • 阿凡达网站建设网网站形式
  • 重庆网站制作多少钱海淀区网站备案去哪
  • 黑龙江建设网官方网站三类人员网络舆情监测系统软件
  • 开发软件下载网站电商类网站开发费用
  • 网站建设推广渠道百度网盘官方网站
  • wordpress多域名多站点dedecms 调用 另一个网站
  • 无锡中小企业网站建设专门做瓷砖的网站
  • 宁波哪里做网站的建网站的英文
  • 贵阳网站建设天锐科技金融集团网站模板
  • 更换网站服务器小米官网页面