当前位置:   article > 正文

从0开始搭建python后台服务-Flask版(四)_flask版本

flask版本

初级应用。实现目标:结合VUE项目 flask 后台服务实现简单的用户登录功能。

一、搭建准备

初始库准备:
pip install Flask Flask-SQLAlchemy
pip install pymysql
pip install mysqlclient
python版本:3.10.6

博主使用的MYSQL 8.0

@vue/cli 5.0.8

二、源代码展示


前端页面 


步骤1:使用VUE CLI 创建一个空项目文件:
vue create your-project-name
步骤2:使用npm初始化axios(实现跨域请求):
npm install axios
步骤3:修改app.vue中为下述代码:
  1. <template>
  2. <div>
  3. <h1>登录</h1>
  4. <form @submit.prevent="login">
  5. <input type="text" v-model="user.username" placeholder="用户名">
  6. <input type="password" v-model="user.password" placeholder="密码">
  7. <button type="submit">提交</button>
  8. </form>
  9. </div>
  10. </template>
  11. <script>
  12. import axios from 'axios';
  13. export default {
  14. data() {
  15. return {
  16. user: {
  17. username: '',
  18. password: ''
  19. }
  20. };
  21. },
  22. methods: {
  23. login() {
  24. axios.post('http://127.0.0.1:5000/login', this.user)
  25. .then(response => {
  26. // 登录成功
  27. alert(response.data.message);
  28. })
  29. .catch(error => {
  30. if (error.response) {
  31. // 登录失败
  32. alert(error.response.data.message);
  33. } else {
  34. // 网络或其他错误
  35. console.error("请求失败:", error);
  36. }
  37. });
  38. }
  39. }
  40. };
  41. </script>

后端代码 


(一)静态数据对比版:
  1. # app.py
  2. from flask import Flask, jsonify, request
  3. from flask_cors import CORS
  4. from flask_httpauth import HTTPBasicAuth
  5. app = Flask(__name__)
  6. CORS(app) # 允许跨域
  7. auth = HTTPBasicAuth()
  8. # 假设的用户数据库记录
  9. users = {
  10. "admin": "123456"
  11. }
  12. @auth.verify_password
  13. def verify_password(username, password):
  14. if username in users and users[username] == password:
  15. return username
  16. @app.route('/login', methods=['POST'])
  17. def login():
  18. data = request.json
  19. if not data or not data.get('username') or not data.get('password'):
  20. return jsonify({"message": "必须提供用户名和密码", "status": "error"}), 400
  21. username = data.get('username')
  22. password = data.get('password')
  23. if verify_password(username, password):
  24. return jsonify({"message": "登录成功,这里是flask后台", "status": "success"})
  25. else:
  26. return jsonify({"message": "用户名或密码错误", "status": "error"}), 401
  27. if __name__ == '__main__':
  28. app.run(debug=True)
(二)链接数据库对比版:
  1. from flask import Flask, request, jsonify
  2. from flask_sqlalchemy import SQLAlchemy
  3. from flask_cors import CORS
  4. app = Flask(__name__)
  5. CORS(app) # 允许跨域
  6. # 数据库设置
  7. app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@localhost/operationdb'
  8. app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
  9. db = SQLAlchemy(app)
  10. # 用户模型
  11. class User(db.Model):
  12. __tablename__ = 'table_users'
  13. id = db.Column(db.Integer, primary_key=True)
  14. username = db.Column(db.String(255), unique=True, nullable=False)
  15. password = db.Column(db.String(255), nullable=False)
  16. # 登录路由
  17. @app.route('/login', methods=['POST'])
  18. def login():
  19. data = request.get_json()
  20. username = data.get('username')
  21. password = data.get('password')
  22. user = User.query.filter_by(username=username, password=password).first()
  23. if user:
  24. return jsonify({"message": "登录成功,data版后台", "status": "success"}), 200
  25. else:
  26. return jsonify({"message": "用户名或密码错误", "status": "error"}), 401
  27. if __name__ == '__main__':
  28. app.run(debug=True)

三、运行效果

vue项目文件内启动: npm run serve

启动后台文件: python XXXX.py


前端:

提交后效果:

可以看到返回的message弹窗,访问数据库成功。

提示:在后台搭建中一定不能忘记 CORS,否者会出现跨域拒绝访问的问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/483266
推荐阅读
相关标签
  

闽ICP备14008679号