Python web开发之flask项目实战总结 您所在的位置:网站首页 flash实验报告怎么写 Python web开发之flask项目实战总结

Python web开发之flask项目实战总结

2024-05-25 11:14| 来源: 网络整理| 查看: 265

在线问答系统 Flask Web开发项目介绍功能描述一、前端设计二、数据库设计三、页面功能开发1.用户模块2.问答模块 四、总结

Flask Web开发

请求到响应     用户通过浏览器访问url,会发送请求到服务器,服务器接收请求后会根据url规则找到对应的视图函数进行处理,处理完后会把结果发送到浏览器端,浏览器接收到返回的内容并呈现给用户(得到响应)。

上下文对象     在分派请求之前都会被激活,在请求处理完成后都被删除。 请求上下文对象:     Request:请求对象,封装了客户端发出的HTTP请求中的内容。     Session:用户会话(dict)。各请求之间的数据共享。 应用上下文对象:     current_app:当前激活程序的程序实例。     g:处理请求时的临时存储对象,每次请求都会重设这个变量

Session与cookie:

Session是在服务器端存储数据,而cookie是在客户端存储数据。Session依赖于cookie实现,客户端向服务器端发送请求时会带上cookie,服务器端根据cookie的值找到Session中对应的值(数据或用户)。

请求报文:包括请求头和请求体 常用参数:     method:GET/POST     form:POST请求数据dict     args:GET请求数据dict     values:POST请求数据和GET请求数据集合dict     files:上传的文件数据dict     cookies:请求中cookie dict     headers:HTTP请求头

响应报文:包括响应头和响应体     响应:字符串,元组(response,status,headers)     响应元组:response-响应内容;status-响应状态码;headers-响应头信息(dict)。

项目介绍

    该系统是基于Python的Web开发实战项目,前端框架采用Bootstrap,后端采用Flask框架,模板引擎为Jinja2,数据库采用Mysql8.0,开发环境为Python3.9,Flask2.0.1。

功能描述

    该项目通过蓝图改造实现了项目模块化,主要分为用户模块和问答模块,用户模块包括登录、注册、个人主页。问答模块包括首页,关注页,详情页,写文章页。     用户可以登录,注册,并在个人主页查看和修改个人信息等。     用户可以发问题,关注问题,回答问题,也可以收藏回答,点赞回答,点赞评论,评论回答等。

一、前端设计

    前端主要采用了HTML标签,CSS样式,JS语言。布局主要采用的是Flex布局和Bootstrap栅格布局,也用到了Bootstrap许多内置的全局CSS样式和组件以及JS插件,同时用到了iconfont阿里图标库,再加上自己对页面样式的改写和优化,这样下来,基本搭建了项目的前端页面。

二、数据库设计

    使用flask_sqlalchemy扩展建立ORM模型,难点主要在对表之间关系的理解以及建立表与表的关系属性,常见的关系主要是一对一和一对多。 例如在UserProfile模型下建立与User模型一对一属性: user = db.relationship('User', backref=db.backref('profile', uselist=False)) 在Question模型下建立与User模型一对多属性: user = db.relationship('User', backref=db.backref('question_list', lazy='dynamic'))     这里采用lazy=‘dynamic’(懒加载):不是直接加载这些数据,SQLAlchemy会返回一个查询对象,在加载数据前可以过滤(提取)它们,不可用在一对一和多对一关系中

三、页面功能开发 1.用户模块

    该模块难点主要在登录,这里采用了第三方扩展flask_login。

登录流程:

用户在登陆表单输入用户名和密码。表单验证包括验证用户名和密码是否正确,用户名规定为手机号,用户名和密码不为空,用户状态为激活状态等。通过表单验证,执行登录操作。记录用户登录信息。跳转到上一次访问的页面或首页。

开发流程:

编写登录表单并渲染到模板中。编写表单验证,包括自定义表单验证,验证用户名和密码是否正确。注:由于数据库中的密码是加密存储,验证时需要拿到表单中的用户名和密码,并将密码加密后再验证通过login_user()执行登录操作,可以记录、保存当前成功登录的用户(current_user)。使用ORM模型保存用户登录的相关信息到数据库中。登陆成功后重定向,这里添加了一个隐藏表单域用来保存用户上一次试图访问的页面url,并在视图函数中得到相应的值。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有