Flask实战第51天:cms添加轮播图后端代码逻辑完成
首先,我们需要给轮播图设计一张表,因为轮播图前端要展示,CMS要管理,所以我们在apps下新建个models.py
编辑apps.models.py
- from exts import db
- from datetime import datetime
- class BannerModel(db.Model):
- __tablename__ = 'banner'
- id = db.Column(db.Integer, primary_key=True, autoincrement=True)
- name = db.Column(db.String(255), nullable=False)
- image_url = db.Column(db.String(255), nullable=False)
- link_url = db.Column(db.String(255), nullable=False)
- priority = db.Column(db.Integer, default=0)
- create_time = db.Column(db.DateTime, default=datetime.now)
同步表到数据库
同步表前需要在manage.py中导入BannerModel,否则不会进行同步
- python manage.py db migrate
- python manage.py db upgrade
表单认证,编辑cms.forms.py
- class AddBannerForm(BaseForm):
- name = StringField(validators=[InputRequired(message='请输入轮播图名称!')])
- image_url = StringField(validators=[InputRequired(message='请输入轮播图图片链接!')])
- link_url = StringField(validators=[InputRequired(message='请输入轮播图跳转链接!')])
- priority = IntegerField(validators=[InputRequired(message='请输入轮播图优先级!')])
视图,编辑cms.views.py
- ...
- from .forms import AddBannerForm
- from apps.models import BannerModel
- @bp.route('/abanner/',methods=['POST'])
- @login_required
- def abanner():
- form = AddBannerForm(request.form)
- if form.validate():
- name = form.name.data
- image_url = form.image_url.data
- link_url = form.link_url.data
- priority = form.priority.data
- banner = BannerModel(name=name,image_url=image_url,link_url=link_url,priority=priority)
- db.session.add(banner)
- db.session.commit()
- return xjson.json_success()
- else:
- return xjson.json_param_error(message=form.get_error())
Flask实战第51天:cms添加轮播图后端代码逻辑完成的更多相关文章
- Flask实战第52天:cms添加轮播图前端代码逻辑完成
首页我们在模态框中的保存按钮加一个id,这样方便我们选取这个按钮 <button type="button" class="btn btn-primary" ...
- Flask实战第50天:cms添加轮播图的模态对话框制作
编辑cms_banners.html, 在{% block main_content%}中加上表给内容如下 {% block main_content %} <table class=" ...
- Flask实战第53天:cms编辑轮播图功能完成
后端逻辑 表单验证, 这里编辑就是和添加的内容一样,所以可以直接继承添加轮播图的表单验证,然后多加一个轮播图的id即可 编辑cmd.forms.py class UpdateBannerForm(Ad ...
- 一百二十六:CMS系统之轮播图管理页面布局和添加轮播图的模态对话框制作
视图 @bp.route('/banners/')@login_required@permission_required(CMSPersmission.POSTER)def banners(): re ...
- Android项目实战(四十七):轮播图效果Viewpager
简易.常用的轮播图效果ViewPager ,老技术了,记一笔留着以后ctrl C + ctrl V 需求如下: 不定张个数的ImagView轮播,右下角显示轮播点图标,每隔固定时间切换下一张,最 ...
- Flask实战第48天:首页轮播图实现
首页的布局如下 因为以后所有的内容都是在main-container里面,所以这里我们修改front_base.html,把{% block body%}{% endblock%}放到里面去 < ...
- Flask实战第54天:cms删除轮播图功能完成
后台逻辑 编辑cms.views.py @bp.route('/dbanner/',methods=['POST']) @login_required def dbanner(): banner_id ...
- 一百二十七:CMS系统之添加轮播图前后台逻辑
后台逻辑 模型 from exts import dbfrom datetime import datetime class BannerModel(db.Model): __tablename__ ...
- 轮播图适应代码jQ
(function(){ var i = 0; var time ; $('.page-size').html('1'); var obj = $('.xst-scroll>li'); var ...
随机推荐
- Ubuntu12.04 安装nginx和mongo过程
1.安装php和php-cgi apt-get install php5 php5-cgi 2.安装 nginx apt-get install nginx 3.安装 MongoDB apt-get ...
- 继承自UITableView的类自带tableView属性,不需要在创建该属性,因为父类UITableView已经创建.
继承自UITableView的类自带tableView属性,不需要在创建该属性,因为父类UITableView已经创建. https://www.evernote.com/shard/s227 ...
- 变量对象vs活动对象
这是我见过描述的最为详尽的关于变量对象.活动对象以及闭包的解析,来自知乎,感谢答主: 作者:闭家锁链接:https://www.zhihu.com/question/36393048/answer/7 ...
- java解析XML之DOM解析和SAX解析(包含CDATA的问题)
Dom解析功能强大,可增删改查,操作时会将XML文档读到内存,因此适用于小文档: SAX解析是从头到尾逐行逐个元素解析,修改较为不便,但适用于只读的大文档:SAX采用事件驱动的方式解析XML.如同在电 ...
- echart自定义tooltip
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- charger related source code position
Platform Qualcomm MSM8917 or MSM8937 Source kernel/msm-3.18/drivers/power/qpnp-smbcharger.c kernel/m ...
- centos7下opencv的安装
os:centos7 opencv:opencv3.0.0 for linux reference:http://www.cnblogs.com/xixixing/p/6096057.html det ...
- lsb_release查看当前系统的发行版信息
Linux除了用uname -r查看系统版本信息外,还可以用lsb_release. 安装: yum install -y redhat-lsb-core 使用: lsb_release -a
- JavaSE项目之聊天室swing版
引子: 当前,互联网 体系结构的参考模型主要有两种,一种是OSI参考模型,另一种是TCP/IP参考模型. 一.OSI参考模型,即开放式通信系统互联参考模型(OSI/RM,Open Systems In ...
- Network Embedding
网络表示 网络表示学习(DeepWalk,LINE,node2vec,SDNE) https://blog.csdn.net/u013527419/article/details/76017528 网 ...