使用python编写web项目,第四节,创建一个基本的视图

上一节内容讲了项目的拆分和基础模型的创建,这一节讲一下怎么创建一个基本的视图

在一个web项目中,用户的登录视图一般都是比较经典的视图,大多数时候也是第一个编写的视图,在这里提醒一下,学过flask框架的朋友应该都知道,这里的视图并不是前端的页面,视图可以简单的理解成对相应的页面中的数据做处理的接口函数

所以在这里我们以用户的登录视图为例,来说一下怎么编写视图

首先,因为项目是通过蓝图来管理各业务模块及视图,所以在视图文件中,我们需要导入蓝图对象

# 这行代码根据自己的实际情况来
from stu_mng.student import user_bp # user_bp是小编创建的蓝图对象

接下来就是创建映射视图的路由(如果有对于映射一词不理解的可以上网去搜,这个小编也是在学习过程中慢慢领会的,一时不知道该怎么解释),并封装视图函数

@user_bp.route('/login', methods=['POST'])
def login():
    ...

在视图函数中,一般都是先接收请求的数据,这里说一下,根据请求头中Content-Type参数的值的不同使用不同的方法接收请求的数据

如果该参数的值为:application/json

# 则使用这个方法获取数据
request.get_json().get('args')

如果该参数的值为:application/x-www-form-urlencoded

# 则使用这个方法获取请求的数据
request.form.get('args')

这个参数在编写测试代码发送请求的时候,小编所使用的插件是需要自己设置的,和小编使用同款插件的应该知道自己这个参数是什么值

对于用户的登录视图,一般需要接收的参数无非就是用户名或者账号和密码,一般是这两个,在接收到参数后,如何对参数进行处理,是视图函数中的重点,这里小编说一个比较严谨的处理思路

首先是判断接收的数据是否完整

# 判断参数是否都有值,如果有空值则不进入该语句块
if all(['name','passwd']):
    ...
# 如果有看不懂这行代码的写法的,可以自己去测试

如果数据完整,则根据账号在数据库中进行查找,看是否存在该用户信息

​user = Student.query.filter(Student.name==name).first()
if user:
    ...

这行代码的语法学过sqlalchemy的朋友应该都能看懂,小编在这里补充一些细节,首先是末尾的 ‘ . first( ) ’ 方法,虽然有时候我们要查找的字段本来就是不能重复是,返回的查询结果应该只有一条,但是还是需要使用这个方法,才能返回一个正确的对象

图中下面的对象才是正确的对象

其次,在MySQL数据库中,过滤的关键字有filter和filter_by两个,这两个的区别因为小编也容易忘记,所以这里细说一下,使用filter过滤时,被查询的字段需要指定模型的名字,且该关键字支持全部的关系比较符,使用filter_by过滤时,被查询的字段不需要指定模型的名字,但是该关键字只支持赋值符号,这是两者最明显的区别,这里我们过滤用的是关系比较符,不是赋值符号,所以应该使用filter方法

如果存在用户信息,再判断密码是否正确

if user.passwd == passwd:
    ...

也就是说,先判断信息是否完整,再判断用户信息是否存在,最后再判断密码是否正确,这是一个比较严谨的思路,有些嫌麻烦的朋友可能会自直接拿这两个数据去数据库中查找,看能不能查找到这条数据,当然这个也是可以的哈

最后再都通过判断后,就可以返回登录成功的信息了,因为前端需要接收到后端返回的信息才能做下一步操作嘛,并不是判断完就没事了哈,返回的信息一般是如下的JSON形式

{'code':200,'message':'登录成功'}

这里的code是网页的响应状态码,这个单词可以使用其他意思相近的单词替换,这个状态码是按照网页响应状态码的规范设置的,一般用200表示成功,常见的404就表示找不到网页

对状态码有兴趣的可以参考这篇文章:http://t.csdnimg.cn/4QDco (对状态码的解释比较官方的网站地址都很长,复制下来很占位置,所以小编在CSDN上面找了一篇,也很详细)

后面的 ‘ message ’ 是提示信息,这个单词有时也使用msg代替,具体的信息只要意思到位就行

有时候接收的数据在处理后还需要返回,也会添加在这个JSON数据里面,一般使用data,这些信息的键所使用的单词不是规定的,只要和前端对应就行,另外,除了判断成功会返回提示之外,就算没用通过判断,也需要返回提示错误的信息,这样前端才能根据返回的信息做出相应的处理,用户才能知道当前的操作错误

 视图编写完之后就是进行测试了,这里就不说了,小编在测试的时候发现返回的信息被转成了如下这种编码

"\u767b\u5f55\u6210\u529f"

解决这个转码问题需要注意两个地方,一是在数据库的配置文件中设置如下参数

# 设置不使用ASEII编码
JSON_AS_ASCII = False

 二是需要检查以下几个模块的版本,看和小编给出的是否相同

pip install Werkzeug==2.2.2
pip install Flask-SQLAlchemy==3.0.2
pip install Flask-Migrate==4.0.0
pip install PyMySQL==1.0.2
pip install Flask==2.2.2

以上就是关于项目的基本视图的编写,看到这里,如果有觉得文章不错的朋友,麻烦点个赞,收藏一下,顺便再加个关注,嘿嘿嘿

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python创建一个Web项目的步骤如下: 1. 安装Python:首先确保你的计算机上已经安装了Python。你可以从Python官方网站(www.python.org)下载并安装最新版本的Python。 2. 安装虚拟环境(可选):为了隔离不同项目的依赖,建议在项目中使用虚拟环境。可以使用Python自带的venv模块或者第三方工具如virtualenv来创建和管理虚拟环境。 3. 初始化项目:在命令行中,进入你想要创建项目的目录,并执行以下命令: ``` mkdir myproject cd myproject ``` 4. 创建虚拟环境(可选):如果你选择使用虚拟环境,执行以下命令来创建一个新的虚拟环境: ``` python -m venv venv ``` 5. 激活虚拟环境(可选):如果你创建了虚拟环境,在命令行中执行以下命令来激活它: - 在 Windows 上: ``` venv\Scripts\activate ``` - 在 macOS/Linux 上: ``` source venv/bin/activate ``` 6. 安装所需的库:使用pip命令来安装你需要的库。例如,如果你要使用Flask框架,可以执行以下命令来安装它: ``` pip install flask ``` 7. 创建一个简单的Web应用程序:在项目目录下创建一个Python脚本文件,例如app.py,并使用你选择的Web框架(如Flask、Django等)编写一个简单的Web应用程序。 例如,使用Flask框架创建一个简单的Hello World应用: ```python from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' if __name__ == '__main__': app.run() ``` 8. 运行Web应用程序:在命令行中执行以下命令来运行你的Web应用程序: ``` python app.py ``` 9. 打开浏览器并访问你的应用程序:在浏览器中输入`http://localhost:5000`(如果使用Flask框架)或者应用程序监听的端口号,并查看你的Web应用程序。 这些是在Python创建一个Web项目基本步骤。根据具体需求,你可能还需要学习更多关于Web开发的知识和技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值