基于Python-Flask实现的网站例子

news/2024/5/20 14:52:27/文章来源:https://blog.csdn.net/findhappy117/article/details/79283507

 

 

概述

使用Flask写的体育网站 包括(注册 论坛 文章评论 组建战队 后台管理)等功能 示例地址文中有写 萌新 请多指教

详细

项目示例地址: 网站演示

源码下载地址:

http://www.demodashi.com/demo/12380.html

一、环境搭建

1. 安装配置python3.6

    示例网站使用的是python 3.6.3

    下载地址:https://www.python.org/downloads/release/python-363/

    根据自己的系统选择相应的版本

2. 使用pip 安装环境 (最好能使用virtualenv创建虚拟环境)
    例(没有使用虚拟环境):

    命令行进入网站根目录 就是放有 requirements.txt(内涵所有需要的库、包括flask)文件的地方 运行:

pip3 install -r requirements.txt

    等待安装完成

 

二、项目结构以及程序实现

1.项目结构

说明:

    admin 后台登录表单以及后台管理视图
    api      大部分的借口函数
    auth   用户登陆视图管理
    main   网站主体部分视图管理以及表单

    static  静态文件存放点

    templates   html文件以及基础模版

    email.py     email操作相关函数
    models.py  数据库相关操作

    config.py    网站设置
    manage.py 启动管理

    呃……里面有些奇怪的文件(自我记录)不要在意  具体如图:

QQ图片20180117104224.png

2. 程序实现

挑选部分代码进行说明:

前后端交互 使用ajax发送表单内容 提交给后台接口  根据返回内容作出相应处理

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

$.ajax({

           type: "POST",

           url: "{{ url_for('api.register') }}",

           data: json_data,

           dataType: 'json',

           contentType: 'application/json',

           success: function (data) {

               if (data.result === 'ok'){

                   swal({

                       title: '注册成功,一封确认邮件已发往您的邮箱!',

                       type: 'success',

                       text: '请登录后前往邮箱进行验证! 3秒后自动跳转到首页',

                       timer: 3000,

                       showConfirmButton: false

                   }).catch(function () {

                       window.location.href =

                           "{{ url_for('auth.register_ok') }}"

                   });

               }

               else {

                   swal('错误','注册失败!请联系单位工作人员!''error')

               }

           },

           error: function () {

               swal('错误','注册失败!请联系单位工作人员!''error')

           }

       });

注册页面大概长这样:

QQ图片20180117112006.png

弹窗使用了sweetalert2  :

 QQ图片20180117110508.png

 

后台处理:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

@api.route('/register', methods=['POST'])

def register():

    """用户注册"""

    # 检查管理员是否已经注册

    if User.query.get(999is None:

        User.default_user()

    #  接收前台传来的josn数据

    json_data = request.get_json()

    if json_data is not None:

            # 注册用户

        user = User.from_json(json_data)

        db.session.add(user)

        db.session.commit()

        # 登陆

        login_user(user)

        # 生产验证码并发送链接到邮箱

        token = user.generate_confirmation_token()

        send_email(user.email, '确认你的账户''auth/email/confirm', user=user,

                   token=token)

        return jsonify({'result''ok'})

    return jsonify({'result''error'})

 

 

三、运行前配置以及本地运行测试

 

使用编辑器(本人用的是pycharm)打开config.py文件  进行配置  其中 

邮箱跟密码必须修改 而且要打开该邮箱的smtp服务 139邮箱设置如图:

QQ图片20180117113104.png

os.environ.get('xxx')     是从环境变量中取出相应的信息   配置服务器时可以在服务器上设置相应的环境变量

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

class Config:

    """基础配置,导入所有配置中"""

    # 密匙  加密用  修改SecretKey为自己想用的即可

    SECRET_KEY = os.environ.get('SECRET_KEY'or "SecretKey"

 

    # 数据库自动提交数据 

    SQLALCHEMY_COMMIT_ON_TEARDOWN = True

 

    # 如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。

    # 这需要额外的内存, 如果不必要的可以禁用它。

    SQLALCHEMY_TRACK_MODIFICATIONS = True

 

    # 查询耗时过长的时间

    SLOW_DB_QUERY_TIME = 0.5

 

    # 可以用于显式地禁用或者启用查询记录

    SQLALCHEMY_RECORD_QUERIES = True

 

    # 邮件主题前缀

    MAIL_SUBJECT_PREFIX = '<平顶山浩瀚体育>'

 

    # 寄件人名称

    MAIL_SENDER = '平顶山浩瀚体育 <你的邮箱@test.com>'

 

    # 邮箱端口号

    MAIL_PORT = 465

 

    # 139邮箱smtp服务器地址

    MAIL_SERVER = 'smtp.139.com'

 

    # 发送邮件时使用TLS安全协议 默认为False

    MAIL_USE_TLS = False

 

    # 发送邮件时使用SSL安全协议 默认为False

    MAIL_USE_SSL = True

 

    # 发送邮件所用的邮箱用户名以及密码  

    MAIL_USERNAME = os.environ.get('MAIL_USERNAME'or '你的邮箱@test.com'

    MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD'or '你的邮箱密码'

 

    # 管理员邮箱

    ADMIN_MAIL = os.environ.get('ADMIN_EMAIL'or '你的邮箱@test.com'

    # 管理员账号 默认为admin 可修改 第一次运行时会注册

    ADMIN_USERNAME = os.environ.get('ADMIN_USERNAME'or 'admin'

    # 管理员密码 默认为admin 可修改 第一次运行时会注册

    ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD'or 'admin'

    # SSL安全协议开关 False会打开

    SSL_DISABLE = True

 

    # 禁止转换asc码

    JSON_AS_ASCII = False

 

    # 存储图片的位置

    # windows用'app\static\image'  linux用'app//static//image' 或自定义

    UPLOAD_FOLDER = 'app//static//image'

 

    # 分页设置 每页显示数量

    POSTS_PER_PAGE = 15

 

配置完成后进入网站根目录、打开命令行运行:

python manage.py deploy

等待运行结束后 输入

python manage.py runserver --threaded

出现

QQ图片20180117113608.png

表示运行成功 然后打开 http://127.0.0.1:5000 即可

如图:

QQ图片20180117113747.png

 网站后台入口地址: http://127.0.0.1:5000/manage    用户名跟密码在config.py中设置

萌新所做 望各位大佬多多指点  有bug或者其他问题请反馈 谢谢了

 

注:本文著作权归作者,由demo大师(http://www.demodashi.com)宣传,拒绝转载,转载需要作者同意

 

 

 

 

 

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

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

相关文章

Python-Flask实现基金自选网站

代码地址如下&#xff1a;http://www.demodashi.com/demo/14734.html 项目介绍 本项目的基金数据来自天天基金网&#xff0c;但该网站用户体验较差&#xff0c;内容冗余&#xff0c;故自己实现一个轻量级网站&#xff0c;从8个指标维度对股票基金和债券基金进行挑选&#xff0…

任晶磊:如何看待程序员在 GitHub 发起抗议互联网公司实行 996 工作制网站?

作者&#xff1a;任晶磊 有人说&#xff0c;此行为艺术仍然停留在抱怨的阶段。那么我们来看看出路在何方&#xff0c;所幸已有人在路上。注意&#xff0c;这里都是正在落地的干货。 Disclaimer&#xff1a;我在表达观点时会引用自己的研究工作。如果认为此有夹带私货之嫌&…

大型网站架构系列:分布式消息队列

以下是消息队列以下的大纲&#xff0c;本文主要介绍消息队列概述&#xff0c;消息队列应用场景和消息中间件示例&#xff08;电商&#xff0c;日志系统&#xff09;。 本次分享大纲 消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考&#xff08;推荐&am…

Python网页分析,分析网站的日志数据

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 以下文章来源于大话数据分析&#xff0c;作者&#xff1a;尚天强 网站的日志数据记录了所有Web对服务器的访问活动&#xff0c;本节通过Python第…

基于django快速开发一个网站(一)

* 创建虚拟环境、基于虚拟环境创建django2.0.0和图片加载库和mysql数据库驱动 1. 创建目录并创建虚拟环境 ╰$ mkdir Cornucopiavirtualenv ╰$ cd Cornucopiavirtualenv ╰$ virtualenv env1 2. 进入bin目录&#xff0c;并激活虚拟环境 ╰$ cd bin ╰$ source activate …

发现一个好看的手机壁纸网站,撸代码的手已经饥渴难耐了

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 最近有同学的爬虫代码出了bug&#xff0c;给问我怎么改 于是就发现了这个好看的手机壁纸网站。 看到那么多好看的壁纸&#xff0c;我的爬虫已经饥渴难耐…

浅谈web网站架构演变过程

前言我们以javaweb为例&#xff0c;来搭建一个简单的电商系统&#xff0c;看看这个系统可以如何一步步演变。该系统具备的功能&#xff1a;用户模块&#xff1a;用户注册和管理商品模块&#xff1a;商品展示和管理交易模块&#xff1a;创建交易和管理阶段一、单机构建网站网站的…

php域名墙检测,php 网站域名被墙判断请求方法

可以使用exec去进行查询判断&#xff0c;判断traceroute to 出的ip和最后追踪到的IP是否匹配&#xff0c;如果不匹配可能就被墙了。也可以有个保险的方法&#xff0c;去请求下看是否有返回数据没有基本就是墙了。查询命令方法&#xff1a;traceroute --tcp youtubemy.com[rootl…

思科模拟器企业网站服务器配置,思科模拟器服务器配置

思科模拟器服务器配置 内容精选换一换虚拟IP(Virtual IP Address&#xff0c;简称VIP)是一个未分配给真实弹性云服务器网卡的IP地址。弹性云服务器除了拥有私有IP地址外&#xff0c;还可以拥有虚拟IP地址&#xff0c;用户可以通过其中任意一个IP(私有IP/虚拟IP)访问此弹性云服务…

推荐95个极富创意的单页网站设计实例欣赏

随着网络带宽的快速提升&#xff0c;越来越多的Web视觉设计师开始将自己的网页设计推向单页面的表现形式&#xff0c;他们在不断的尝试各种令人耳目一新的设计方案&#xff0c;像下面的这些例子有很多都是出自个人网站&#xff0c;使用JavaScript来实现单页面内的内容切换&…

30 个用于杂志网站的 WordPress 主题

WordPress 已经形成了一个非常完善的生态链&#xff0c;为 WordPress 开发的各种插件、主题越来越丰富。本文介绍 30 个适用于杂志网站使用的 WordPress 主题&#xff0c;其中也包含一些收费的主题&#xff0c;制作非常精美。 免费的 WordPress 杂志主题 Snips DotNews Render …

网站安全检测 Web 安全测试工具

随着 Web 应用越来越广泛&#xff0c;Web 安全威胁日益凸显。黑客利用网站操作系统的漏洞和 Web 服务程序的 SQL 注入漏洞等得到Web服务器的控制权限&#xff0c;轻则篡改网页内容&#xff0c;重则窃取重要内部数据&#xff0c;更为严重的则是在网页中植入恶意代码&#xff0c;…

SharePoint 2010设计(Design)权限能操作的网站操作菜单项

在SharePoint平台中有经典的5大权限&#xff1a;完全控制、设计、参与讨论、只读、仅查看。其中设计权限与完全控制权限有些相似&#xff0c;而只读和仅查看基本上差不多&#xff0c;参与讨论权限主要是针对内容管理的。设计权限在SharePoint 2010里是不能设置权限的&#xff0…

ubuntu服务器网站备份,用 Ubuntu 建立 Time Machine 备份服务器

用 Ubuntu 建立 Time Machine 备份服务器&#xff1a;1、安装 Netatalksudo apt-get install netatalk2、设置 Time Machine 备份文件存放位置, 假设位置在 /backup/TimeMachinesudo vi /etc/netatak/AppleVolumes.default#~/ "Home Directory"/backup/TimeMachine &…

arcgis制作瓦片地图_挖掘Dark Sky Maps(热的要死后,疯传的一个气温地图网站)...

最近&#xff0c;各种朋友圈&#xff0c;社会媒体&#xff0c;都在疯传一张图&#xff0c;这张图显示的全球的气温图&#xff0c;本没有什么特别的&#xff0c;但是这张图的网站来源所展示的数据与气象局或者各种天气预报的温度值相差倒是不少&#xff0c;引来一片网友的吐槽。…

django 跳转其他网站_Django 实战 | 搭一个 GitHub 用户展示网站 04

一、搜索页面跳转在 urls.py 中添加一个 user 路径&#xff1a;from django.urls import path from . import viewsurlpatterns [path(, views.home, name"home"),path(user/, views.user, name"user"), ]在 views.py 中添加一个 user 方法&#xff1a;de…

使用LogParser分析IIS网站日志

LogParser是个强大的&#xff0c;多功能的分析工具&#xff0c;它统一的查询方式适用于各种文本类型文件&#xff08;例如日志文件&#xff0c;XML文件&#xff0c;CSV文件&#xff09;和操作系统层面数据文件&#xff08;例如事件日志&#xff0c;注册表&#xff0c;文件系统&…

Webydo:一款在线自由创建网站的 Web 应用

Webydo 是一款专业的在线建站应用&#xff0c;使平面设计师可以创建和管理 HTML 网站&#xff0c;而无需编写代码。设计人员可以设计任何类型网站&#xff0c;只需要点击按钮&#xff0c;就能够发布先进的 HTML 网站。 你可以控制所有的设计组件&#xff0c;如&#xff1a;元素…

元素“Button”不是已知元素。原因可能是网站中存在编译错误,或者缺少web.config文件...

最近开发的时候ASP控件都有波浪下划线&#xff0c;提示不是已知元素&#xff0c;搞得挺郁闷的。虽然不影响变异&#xff0c;不过就是不爽。 折腾N久...... 解决了&#xff0c;把FramWork平台换成3.5&#xff0c;问题解决&#xff0c;不知道为啥&#xff0c;求大神指点。 问题描…

优化网站设计(三):对资源添加缓存控制

前言 网站设计的优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。这方面的研究一直没有停止过&#xff0c;我在不同的场合也分享过这样的话题。 作为通用的原则&#xff0c;雅虎的工程师团队曾经给出过35个最佳实践。这个列表请参考 Best Practices fo…