给提交按钮加一个id,方便写js js //发送ajax请求注册请求$(function () { $('#submit-btn').click(function (event) { event.preventDefault(); var telephone_input = $('input[name="telephone"]'); var sms_captcha_input = $('input[name="sms_captcha"]'); var usernam…
---新内容开始--- 番外 大家周一好呀,又是元气满满的一个周一呀!感谢大家在周一这个着急改Bug的黄金时期,抽出时间来看我的博文哈哈哈,时间真快,已经到第十四篇博文了,也很顺顺(跌跌)利利 (撞撞)的来到了Vue的讲解,群里有小伙伴说,感觉后端还有很多没有更新,是呀!还是有很多东西的在后端,只不过想把vue给简单的搭建出来,如果大家有后端的一些知识,可以给我留言,我总结后,在Vue系列之后再继续说,再强调一次,后端以后还会更新. 前边的.net core 文章我会一直在更新中,一直在修改其中…
一.引言 由于本地是采用vue+spring boot实现的前后端分离项目,本机启动的时候先启动后场服务,再单独启动vue工程,然后可以实现全流程贯穿,但是我们要部署到服务器上的时候,一般都是打一个jar包到服务器上跑,那前端的Vue页面就不好启动来展示了. 传统的前端项目和后端服务代码整合起来,可以打成war包丢到tomcat上,在tomcat去跑整个工程:不过我们既然已经采用了前后端分离的策略,部署上再实现分开部署的话,那岂不是美滋滋,改动前端或者改动后端都可以单独部署,这样更方便我们项目的…
好家伙,本篇介绍如何实现"删"功能 来看效果,  数据库 (自然是没什么毛病) "增"搞定了,其实"删"非常简单 (我不会告诉你我是为了水一篇博客才把他们两个分开写,嘿嘿) 逻辑简洁明了: 首先,看见你要删除的数据,点"删除", 随后,①拿到当前这条数据的Id,向后台发请求网络, 然后,②后端删除该字段对应信息, 最后,③前端更新视图 (重新进入用户管理页面,向后端发起请求,拿到新的数据)   本次前端所以操作都在同一个组件中…
编辑 form,继承添加的form 视图 @bp.route('/ubanners/', methods=['POST'])@login_required@permission_required(CMSPersmission.POSTER)def ubanners(): """ 修改banner """ form = UpdateBannerForm(request.form) if form.validate(): banner_id = fo…
模板抽离 由于前后台的模板有些需要的元素如,js,css是相同的,这里抽离出来做base模板 {% from "common/_macros.html" import static %}<meta name="csrf-token" content="{{ csrf_token() }}"><script src="http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js&qu…
实现功能,访问测试页面的时候,跳转到注册页面,注册成功后跳转到测试页面 使用参数:若是从其他地址跳转过来时,头部信息中会携带参数referrer,此参数为从从哪个地址跳转到当前地址的,若是直接从浏览器输入的地址,则不会携带此参数 准备一个测试页面和接口 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</…
视图 @bp.route('/banners/')@login_required@permission_required(CMSPersmission.POSTER)def banners(): return render_template('cms/cms_banners.html') 给这个url添加选中事件 else if(url.indexOf('banners') >= 0) { var bannerManageLi = $('.banner-manage'); bannerManag…
将登录和注册需要的共性标签抽离出来做父模板 将css改名为base base模板 {% from 'common/_macros.html' import static %}<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>{% block title %}{% endblock %}</title> <…
先准备几张轮播图 排序顺序改为根据优先级倒序排 前端首页接口 @bp.route('/')def index(): banners = BannerModel.query.order_by(BannerModel.priority.desc()).limit(4) # 只取4条 context = {'banners': banners} return render_template('front/front_index.html', **context) 在首页模板中动态渲染轮播图 {% fo…
将图片的存储.尺寸等图片本身的一些擦做,交给七牛云处理,自己只关注网站开发本身 七牛云官网:https://www.qiniu.com 操作 登录后,点击管理控制台 点击对象存储-->新建存储空间 获取access_key和secret_key 在这里可以配置图片的所有设置…
把base模板分为左右两块版心 .main-container{ /*整体版心*/ width: 990px; margin: 0 auto; overflow: hidden;}.lg-container{ /*左侧版心*/ width: 730px; float: left;}.sm-container{ /*右侧版心*/ width: 250px; float: right;} 首页html {% extends 'front/front_base.html' %}{% from "com…
配置文件中加入前台用户的身份标识 form class SigninForm(BaseForm): telephone = StringField(validators=[Regexp(r'1[345789]\d{9}', message='手机号不合法')]) password = StringField(validators=[Regexp(r'[0-9a-zA-Z_\.]{6,20}', message='密码不合法')]) remember = StringField() 视图 js /…
定义一个404页面 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>404</title></head><body> 页面不存在 <div><a href="/">点击回到首页</a></div></body&g…
安装shortuuid用于前台用户的主键:pip install shortuuid 创建模型 from datetime import datetimeimport enumfrom werkzeug.security import generate_password_hash, check_password_hashimport shortuuidfrom exts import db class GenderEnum(enum.Enum): """ 性别枚举 "…
实现效果 css body.stop-scrolling { height: 100%; overflow: hidden; } .sweet-overlay { background-color: black; /* IE8 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; /* IE8 */ background-color: rgba(0, 0, 0, 0.4); position: fix…
前面介绍了AWT界面编程的若干技术,在编码实践的时候,会发现AWT用起来甚是别扭,它的毛病包括但不限于下列几点:1.对中文的支持不好,要想在界面上正常显示汉字,还得在运行时指定额外的运行参数“-Dfile.encoding=gbk”:2.Label标签控件居然无法分行展示文本,连换行这么基本的功能都不支持,真是让人醉了:3.AWT没提供专门显示图像的控件,只能由程序员自己定义单独的图像视图,繁琐的操作立马吓跑一票人:考虑到AWT属于Java1时代的产物,种种不足之处尚且情有可原.可是AWT拿来开…
1998 年 6 月 25 日午夜,美国著名连锁零售店 CompUSA 门外挤满了狂热的消费者和媒体,他们在等待一款软件发售:Windows 98,即使明知它要到当天早上才正式上市. ▲ 在 CompUSA 外彻夜排队的消费者 图片来自:Editorial Archives 这一天是微软这款经典操作系统公开发售的日子,尽管在当年 4 月的发布会上,Windows 98 当着全场观众的面完成了一次史上最经典的蓝屏,让比尔-盖茨哭笑不得,但这并不妨碍 Windows 98 受到用户的喜爱和追捧. (…
前面介绍了AWT窗口及其面板的简单用法,其中展示出来的控件只有按钮一种,还有很多好用好玩的控件有待介绍.首先是文本标签Label,该控件用于显示一段平铺文本,它不花哨也不跳动,完全就是素面朝天的文本字符.不过,即便是文本,也能拥有鲜明的个性,犹如书法那样,可以横排也可以竖排,既可写在白纸上也可写在红纸上,还能以专门的字体来书写如楷书.行书.草书.隶书等等.这些彰显个性的功能,需要调用文本标签的相应方法来实现,下面是Label的常见方法说明:setText:设置文本内容.setAlignment:…
前面介绍了两种文本输入框的用法,不过实际应用很少需要用户亲自文字,而是在界面上列出几个选项,让用户勾勾点点完成选择,这样既方便也不容易弄错.依据选择的唯一性,可将选项控件分为两类:一类是在方框中打勾的复选框,多个复选框允许同时勾选:另一类是在圆圈中点选的单选框,一组单选框最多只能选中一个.AWT实现复选功能的控件名叫Checkbox,它由两部分组成,左边部分是个支持打勾的方框,右边部分是说明文字.Checkbox类似一种特殊的按钮,只不过Button的文字在按钮内部,而Checkbox的文字在方…
前面介绍了如何使用画笔工具Graphics绘制各种图案,然而Graphics并不完美,它的遗憾之处包括但不限于:1.不能设置背景颜色:2.虽然提供了平移功能,却未提供旋转功能与缩放功能:3.只能在控件上作画,无法将整幅画保存为图片:有鉴于此,AWT提供了Graphics的升级版名叫Graphics2D,这个二维画笔不但继承了画笔的所有方法,而且拓展了好几个实用的方法,包括设置背景色的setBackground方法,旋转画布的rotate方法,缩放画布的scale方法等.尤为关键的是,Graphi…
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 在GIS的桌面工具中,比如arcgis desktop或者Supermap desktop等工具,均会有图层控制栏工具,即LayerController.通过勾选图层控制栏中的图层选择框,可以实现图层是否展示等,并且还可以设置该图层的相关属性. 详细需求如下: a.图层列表展示 b.通过图层列表控制图层要素的展示 c.支持设置图层某些属性 2.设计 a.图层…
泛型类的功能 在创建泛型类时,还需要一些其他的C#关键字.例如,不能把null赋予泛型类型.此时,可以使用default关键字.如果泛型类型不需要object类的功能,但需要调用泛型类上的某些特定方法,就可以定义约束. 例如: public class DocumentManager<T> { private readonly Queue<T> documentQueue = new Queue<T>(); public void AddDocument(T doc)…
前面介绍了如何使用画笔在控件上展示图像,可是图像来源于磁盘图片,无法即兴绘制个性化的图案.所幸画笔工具Graphics不仅能够描绘图像,还支持绘制常见的几何形状,也支持绘制文本字符串,除了绘制图像用到的drawImage方法,Graphics还有下列常见的绘图方法:setColor:设置画笔的颜色.drawLine:在指定坐标的(x1,y1)与(x2,y2)两点之间画条线段.drawRect:以坐标点(x,y)为左上角,绘制指定宽高的矩形边框.fillRect:以坐标点(x,y)为左上角,绘制指…
html <!DOCTYPE html><html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device…
前言 总结自己的redis,日常使用不是特别频繁,所以比较基础. 开篇 redis 是无关系型数据库,因为其实内存数据库,所以常常和他的竞争对手memcached对比,因为两者原理基础相似,存储方式也是key和value的方式. 在memcached中value只能是字符串,而redis就有5种结构了.当然这并是不说mencached就比redis差,只是介绍出redis有哪些优点. redis最大的优势或者说特点和普通的关系型数据库而言就在于是内存中,这意味着我们有很好都读写能力. 缺点也就很…
本篇参考: https://developer.salesforce.com/blogs/2022/01/preparing-your-components-for-the-removal-of-alert-confirm-prompt https://help.salesforce.com/s/articleView?id=release-notes.rn_lc_alert_confirm_prompt.htm&type=5&release=238 https://developer.s…
前面提过,AWT没提供能够直接显示图像的控件,这无疑是个令人诟病的短板,因为一上来就得由程序员自己去定义新控件,对于初学者来讲很不友好.这个问题在Swing中也解决掉了,不过Swing并未提供单独的图像视图,而是利用标签控件JLabel来显示图像.JLabel的setText方法用来设置标签上的文本,而setIcon方法用来设置标签上的图标,根据两个方法的调用与否状况,标签所展示的内容可分为下列三种情况:1.只调用setText方法,未调用setIcon方法,此时标签只显示文本.2.只调用set…
Swing的输入框仍然分成两类:单行输入框和多行输入框,但与AWT的同类控件相比,它们在若干细节上有所调整.首先说单行输入框,AWT的单行输入框名叫TextField,平时输入什么字符它便显示什么字符,可一旦调用了setEchoChar方法设置回显字符,TextField马上变成只显示密文字符了.然而尴尬之处在于,设置回显字符之后,就没有办法取消原来的回显设置,输入框对象从此只能傻乎乎地显示密文了.如此一来,程序代码难以判断某个输入框究竟会显示明文还是密文,也无法确定输入框文字的加密与否.这不可…
from flask import Blueprint, requestfrom exts import alidayufrom utils import restfulfrom utils.captcha import Captcha bp = Blueprint("common", __name__, url_prefix='/common') @bp.route('/sms_captcha/')def sms_captcha(): telephone = request.args…