python网站开发实例 flask_基于Python-Flask实现的网站例子

news/2024/5/9 17:22:35/文章来源:https://blog.csdn.net/weixin_39631007/article/details/109877449

使用说明

使用Flask制作的普通企业网站前台+后台 包括管理员登录( 主要是后台文章发布的功能的实现),注意:使用对象 是 flask的初学者,说明文档有详细的教程,包括包的引用 ,程序目录如何安排关键的文件如何存放等,在此基础上可以 轻松快速构建自己想要的项目,目录布局文件存放主要参考了ThinkPHP5的思路。实例中有许多bug未处理,不适合商用,如果很介意,请勿下载!

运行环境

Python版本 3.8.2 + flask 1.1.2 + Flask-SQLAlchemy2.4.1 + python第三方库 + xenon admin(管理后台界面)

1-1.项目结构

1587821708767029958.png

站点目录mysite下有application和public文件夹及run.py文件

1.application : 项目主程序存在目录

2.public :

static文件夹包含前端需要引用的css,js,图片,

uploads文件夹存放后台上传的文件及图片,以日期命名的文件夹

3.run.py 主程序入口 :

1-2.application文件夹项目结构

1.admin : 网站管理后台

2.home :网站前台,页面展示

3.init.py : 初始化 flask 和 flask_sqlalchemy ,定义 template_folder 模板文件夹位置 和 定义 static_folder 静态资源引用位置

4.config.py : 配置系统常量,包括数据库的连接、session的参数配置以及 自定义常量配置

5.common.py : 定义常用的处理方法函数,如 def md5(str) ,供 系统其它文件调用

1-3.admin文件夹项目结构

1.controller : 蓝图控制器,每个控制器都以相关的功能模块来命名,如articleBp ,然后在run.py入口文件注册才可以使用

2.filter :自定义过滤器,可以在视图view的模板页面html中使用

3.models :定义表的模型,flask_sqlalchemy 通过 models操作数据库的CURD

4.view :模板页面,需要 在 controller控制器中指定才能使用,展示数据

1-4.home文件夹项目结构

1.目录结构与admin类似,不同的地方在于多了一个common文件夹,里面存放 404,500错误状态的页面,在run.py入口文件注册使用,该控制器存在在home\controller文件夹下

使用说明

程序讲解(登录页面:http://localhost:5000/login/)

1587821858605046983.png

知识点:

1.动态验证码的插件使用:

2.AJAX数据提交:

3.后台登录验证:

动态验证码的插件使用

动态验证码插件使用到的文件是application/admin/controller/verificationCode.py,蓝图名称为codeBp,定义路由:@codeBp.route("/imgCode"),访问的路径:http://localhost:5000/code/imgCode,在入口文件run.py中注册使用:app.register_blueprint(codeBp).注意:字体的引用位置一定要正确,否则无法使用:font = ImageFont.truetype(app.static_folder + r"/public/static/font/Arial.ttf", 40)

AJAX数据提交

登录访问:http://localhost:5000/login/,用户名称 密码或验证码不正确时均会在本页面顶部状态栏有相关提示,如上图所示.登录的用户名称 密码均设置为admin,方便测试.

在登录页面模板文件mysite\application\admin\view\login.html里验证码的引用:刷新验证码

后台登录验证:

前端ajax提交登录信息:

1587821967732002054.png

后台登录验证:

1587821996011010199.png

mysite\application\admin\controller\login.py为控制器(蓝图),蓝图名称:loginBp,在run.py入口文件注册使用,访问路径:http://localhost:5000/login/,模板文件为mysite\application\admin\view\login.html。

通过login.html的ajax提交登录信息到http://localhost:5000/login/check/,通过控制器login.py与数据库信息对比实现用户认证,认证的时候用到了mysite\application\common.py里面自定义的md5函数。

认证过程中使用到了mysite\application\admin\models\admin.py文件,里面定义了表ihc_site_admin的模型,通过flask_sqlalchemy操作该模块实现数据的CURD基本操作,使用方法如:admin = Admin.query.filter(Admin.username==username).first()

信息无误登录成功,认证信息存放在session中,方便其它模块使用认证信息,如 session["islogin"] = True 。

不管登录成功与否,都 会返回json数据告诉前端登录页面该如何处理事件:data["status"] = 1 ,data["msg"] = "验证通过 " ,return jsonify(data)。

login_require : 在后台其它模块如文章发布模块在操作前都要加上该装饰器,判断是否已经登录,是否 有权限进行下一步的操作,如:在文章发布页面:@articleBp.route("/add",methods=["GET"]),@login_require,def add():

3-1.文章发布(文章列表:hhttp://localhost:5000/admin/article/lists/categoryid/6)

效果图如下

文章列表:

1587822112842045818.jpg

1587822112825019483.png

新增文章:

1587822192871001013.png

1587822192873016351.png

1587822192898069784.png

1587822193186088149.png

1587822193298083750.png

1587822193301016223.jpg

文章已经实现新增,编辑,删除,批量删除,多条件搜索,分页的功能,控制器,模型,视图均与登录类似,不再解析,重点讲解编辑器的使用

4-1.编辑器的使用

资源位置:mysite\public\static\ueditor

文件位置:mysite\application\admin\view\public\editor.html

文件引用:mysite\application\admin\view\article\add.html中引用:{% include "admin/view/public/editor.html" %}

编辑器控制器:mysite\application\admin\controller\upfile.py

编辑器上传类:mysite\public\static\ueditor\python\uploader.py

编辑器配置文件:mysite\public\static\ueditor\python\config.json

须要注意的地方:mysite\application\admin\controller\upfile.py文件 中21行的位置,config.json配置文件路径一定要正确,否则无法使用文件上传功能。

mysite\application\admin\view\public\editor.html 10行 中的 serverUrl 与 mysite\public\static\ueditor\ueditor.config.js中36行中的serverUrl均设置为 /admin/upfile/ 才可以正常使用上传功能 。

上传的路径默认为:mysite\public\uploads,可以在mysite\public\static\ueditor\python\config.json 12 行中imagePathFormat修改上传路径

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_728036.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建立网站需要什么条件_角点科技告诉你营销网站搭建需要什么条件?

营销网站搭建需要什么条件?营销型网站就是指具备营销推广功能的网站,在开始建站的时候就已日后的推广作为目的。让每一个环节,每一步都考虑到营销功能的需求,让网站一上线就具有利于优化推广的特征。但是很多人不了解营销网站搭建需要哪些条件,接下来就与…

c++cmath无法打开_C-NCAP网站是操作失误,莫让低级失误影响专业权威

12月23日,中汽中心C-NCAP进行了一次侧面碰撞测试后,发生了一件奇事。C-NCAP网站丢了,打不开了。于是,不少人好奇心大起,各种猜测由此而生。截至到现在,中汽中心C-NCAP官网竟然显示"暂时无法访问"…

aps mysql部署_宝塔Windows面板部署ASP、ASPX程序WEB网站环境方法

网友热度 118,060 ℃ - 2条评论老左在"宝塔Windows面板部署PHPMySQL环境建站过程"一文中简单分享到如何在Windows系统中安装宝塔面板(Windows)软件,然后配置PHPMYSQL程序的过程,如果我们单纯的是PHP程序的,其实我一贯建议直接用Lin…

php网站首页在哪,本地PHP网站session存储在哪

PHP配置文件中session.save_path负责session文件的存放位置。如果没有配置则不会生成session文件,如果配置的目录session.save_path "E:/ttt"不存在,则会报错:(推荐学习:PHP编程从入门到精通)Warning: session_start()…

openresty完全开发指南 pdf_京东高级工程师开发十年,编写出:“亿级流量网站架构核心技术”...

前言:相信大家都知道,说起亿万流量网站高性框架的设计方案,就能想到关键的两点,那就是高可用和高并发。而要谈对高并发和高可用有多熟悉,京东的大佬们还是有一定发言权,而作为京东高级工程师更是大佬级别。…

如何识别一个网站是正规合法的网站

参考来源:https://jingyan.baidu.com/article/642c9d341e53c6644b46f747.html 一、工信部备案信息查询 1.搜索“工信部网站备案查询”进入工信部网站。 2.进入工信部网站后点击右下角的“公共信息查询”。 3.进入ICP/IP地址/域名信息备案管理系统,点击左…

pip更新失败和下载速度慢问题(使用镜像网站)

本文内容,部分来源于网络 1.pip更新失败 https://blog.csdn.net/tscaxx/article/details/104253948 2.python pip下载速度慢的解决方法 ​ pip是python内置的非常好用的下载工具,基本可以下载全部的python库。它还有一个非常好的特点&#xff…

130 个相见恨晚的超实用网站,一次性分享出来

搞学习 CSDN: https://www.csdn.net/TED(最优质的演讲):https://www.ted.com/谷粉学术: https://gfsoso.99lb.net/scholar.html大学资源网:http://www.dxzy163.com/简答题:http://www.jiandati.…

网站防审查元素、防止打开调试工具 怎么解决?(大部分可以解决)

1.网站阻止使用右击和f12等 解决办法: 谷歌浏览器右上角菜单栏 浏览器菜单栏--->更多工具--->开发者工具 2.审查元素界面后,循环出现断点 解决办法: 点击(取消所有断点检测) 再点一下这里 3.检测窗口变化 解…

[转]memcached在大负载高并发网站上的应用(1)---简介

为什么80%的码农都做不了架构师?>>> 大家可能对memcached这种产品早有了解,或者已经应用在自己的网站中了,但是也有一些朋友从来都没有听说过或者使用过。这都没什么关系,本文旨在从各个角度综合的介绍这种产品&#…

SharePoint 2010开发实例精选——网站属性管理

本例通过自定义一系列的后台应用程序页面,在SharePoint Foundation 2010和SharePoint Server 2010中实现了SharePoint网站的属性定制管理。SharePoint中网站的元数据存储在哈希表SPWeb.AllProperties中。我们可以通过新的SharePoint 2010 API如SPWeb.GetProperty&am…

在Red Hat Linux5下构建LAMP网站服务平台之编译安装Apache与配置基于域名的虚拟Web主机...

在Red Hat Linux5下构建LAMP网站服务平台之编译安装Apache与配置基于域名的虚拟Web主机 2010-09-06 17:25:40标签:Linux RedHat Apache 虚拟主机 个人主页    [推送到技术圈] 版权声明:原创作品,允许转载,转载时请务必以超链接…

英文缩写查询网站

python官网看到PSF,不知道什么意思,就查了一下缩写。没想到还真有这类网站。 1.百度“英文缩写” 或直接访问网站: http://shortof.com/ 2.python软件基金会的意思

php 如何用op浏览器开发手机网站,PHP实现手机网站支付(兼容微信浏览器)

网上的很多PHP支付宝支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后给出一个单文件版的,希望可以给各位想接入支付宝支付的带来些许帮助和借鉴意义。推荐:《PHP视频教程》一个PHP文件搞定支付宝系列&#xff…

onmouseover和onmouseout在Repeater控件中应用

如果你曾看过这篇,http://www.cnblogs.com/insus/articles/1411057.html ,它是在GridView控件中演示,但是它的方法在Repeater控件是无法复制的。由于看到论坛上有网友问及,花上一点点时间做了Repeater控件的演示。首先看看效果(动…

22个优秀的网站后台管理面板模版

在一些网站开发过程中,有非常多的例子是关于怎么学习如何创建网站前台设计,但是处理后台的文章是非常少,这篇文章将整理出22个非常优秀的管理后台面板模版帮助你减少网站的后台开发,节省时间。访问下面这些列表,选择您…

使用Varnish代替Squid做网站缓存加速器的详细解决方案

今天写的这篇关于Varnish的文章,已经是一篇可以完全替代Squid做网站缓存加速器的详细解决方案了。网上关于Varnish的资料很少,中文资料更是微乎其微,希望本文能够吸引更多的人研究、使用Varnish。   在我看来,使用Varnish代替Sq…

iis10 asp 如何连接mdb_如何攻破一个网站

原标题:如何攻破一个网站通过本文你将了解黑客常用的入手思路和技术手法,适合热爱网络信息安全的新手朋友了解学习。本文将从最开始的信息收集开始讲述黑客是如何一步步的攻破你的网站和服务器的。阅读本文你会学到以下内容:1.渗透测试前的简…

数据太多加滚动标题不动_SEO怎么对页面标题优化,页面优化要注意什么?

页面的标题主要是规定了一些网页的内容,然后去告诉搜索引擎蜘蛛这个页面的大概内容,页面标题也就是搜索引擎来判断页面内容的主要参考信息,这就是网页优化最重要的因素。SEO去优化页面标题可以从下面几方面入手(1)相关且准确每个页面标题都要…

建站模板论坛_运营自建站并不难!SHOPYY教你快速建站及精准引流

自建站一直是跨境电商圈中热议的话题。相较于平台,自建站有更大的发挥空间,不受条款限制。不过大部分卖家的印象都停留在“难”上。因为他们在做自建站之后只有少数能做起来。而运营难度究竟有多高,怎样才是正确的建站姿势呢?自建站做不起来…