当前位置: 首页 > news >正文

qq怎么做放资源的网站提供常州网站推广

qq怎么做放资源的网站,提供常州网站推广,简历模板免费下载wps,天津网站建设方案一、flask对于简单搭建一个基于python语言-的web项目非常简单 二、项目目录 示例代码 git路径 三、代码介绍 1、安装pip依赖 通过pip插入数据驱动依赖pip install flask-sqlalchemy 和 pip install pymysql 2.配置数据源 config.py DIALECT mysql DRIVER pymysql USERN…

一、flask对于简单搭建一个基于python语言-的web项目非常简单

二、项目目录

示例代码 git路径

 三、代码介绍

1、安装pip依赖

通过pip插入数据驱动依赖pip install flask-sqlalchemy 和 pip install pymysql

2.配置数据源 config.py

DIALECT = 'mysql'
DRIVER = 'pymysql'
USERNAME = 'root'
PASSWORD = '123456'
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'tgcrm'# mysql 不会认识utf-8,而需要直接写成utf8
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT,DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = True# 加载密钥
key_access = '&^_^&protect*py_&^_^&'

3、引用orm框架 访问数据库

/mapper/exts.py

from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

4、启动文件 app.py

from flask import Flask
# 引用数据库启动文件
from mapper.exts import db
# 引用数据库配置文件
import config
# 引用数据库
from controller.user_controller import *app = Flask(__name__)
app.config.from_object(config)
db.init_app(app)app.register_blueprint(user, url_prefix="/user")# 全局拦截器校验token
@app.before_request
def before():key = str(request.headers.get('TOKEN'))if key != format(config.key_access):return 'Password error'else:passif __name__ == '__main__':app.run(host='0.0.0.0', port=8060)

5、数据库操作

通过Flask提供orm框架对数据库进行操作

5.1增加

# 添加 http://127.0.0.1:5000/user/add/2/1
@user.route('/add/<username>/<pwd>')
def add_user(username, pwd):print(username, pwd)userinfo = User(username=username, pwd=pwd)db.session.add(userinfo)db.session.commit()# # 接受前端发来的数据# data = json.loads(request.form.get('data'))## # lesson: "Operation System"# # score: 100# lesson = data["lesson"]# score = data["score"]## # 自己在本地组装成Json格式,用到了flask的jsonify方法# info = dict()# info['name'] = "pengshuang"# info['lesson'] = lesson# info['score'] = score# return jsonify(info)return jsonify("ADD_SUCCESS")

5.2删除

@user.route('/delete/<int:id>')
def delete_user(id):print(id)# 第一种user1 = User.query.filter().first()print(user1.id)db.session.delete(user1)db.session.commit()# 第二种user2 = User.query.filter(User.id == 2).delete()db.session.commit()return jsonify("DELETE_SUCCESS")

5.3修改

@user.route('/update/<int:id>')
def update_user(id):user1 = User.query.filter(User.id == id).first()user1.username = "我是修改后的"db.session.merge(user1)db.session.commit()return jsonify("UPDATE_SUCCESS")

5.4查询

@user.route('/list')
def list_users():users = User.query.all()print(users)users_output = []for user in users:users_output.append(user.to_json())return jsonify(users_output)

5.5条件查询

1.filter_by和filter

两种写法根据版本的不同:

filter_by: 用于查询简单的列名,不支持比较运算符

filterfilter_by的功能更强大,支持比较运算符,支持or_in_等语法。

  1. data = UserInfo.query.filter(UserInfo.name=='1').all()

  2. data = UserInfo.query.filter_by(name='1').all()

1.  根据用户名查询符合条件的第一条数据
User.query.filter_by(username=username).first()
print("查询1:", user1.to_json())
    
2. 查询名字结尾字符为g的所有数据[开始/包含]
User.query.filter(User.username.endswith('g')).all()
User.query.filter(User.username.contains('g')).all()

3. 查询名字不等于wang的所有数据[2种方式]
 from sqlalchemy import not_
注意了啊:逻辑查询的格式:逻辑符_(类属性其他的一些判断)
User.query.filter(not_(User.username=='yang')).all()
User.query.filter(User.username!='yang').all()

4. 查询名字和邮箱都以 li 开头的所有数据[2种方式]
from sqlalchemy import and_
User.query.filter(and_(User.username.startswith('li'), User.email.startswith('li'))).all()
User.query.filter(User.username.startswith('li'), User.email.startswith('li')).all()

5. 查询password是 `123456` 或者 `email` 以 `itheima.com` 结尾的所有数据
from sqlalchemy import or_
User.query.filter(or_(User.pwd=='123456', User.email.endswith('tiantian.com'))).all()

6. 查询id为 [1, 3, 5, 7, 9] 的用户列表
User.query.filter(User.id.in_([1, 3, 5, 7, 9])).all()

7. 查询name为liu的角色数据 关系引用
# 举例 暂时没有 
User.query.filter_by(username='liu').first().role.name

8.获取第一条记录
User.query.first()

6、分页对象

  • has_prev/has_next——是否有上一页/下一页

  • Items——当前页的数据列表

  • prev_num/next_num——上一页/下一页的页码

  • total——总记录数

  • pages——总页数

@user.route('/loadUserPage/<int:page>/<int:per_page>')
def list_user(page, per_page):""" 用户分页 """# 每一页的数据大小-per_page 页码-page# 1. 查询用户信息user = User.query# 2. 准备分页的数据print(page, per_page)user_page_data = user.paginate(page, per_page=per_page)users_output = []for user in user_page_data.items:users_output.append(user.to_json())print("当前页的数据列表", users_output)print("是否有上一页", user_page_data.has_prev)print("是否下一页", user_page_data.has_next)print("上一页的页码", user_page_data.prev_num)print("下一页的页码", user_page_data.next_num)print("总记录数", user_page_data.total)print("总页数", user_page_data.pages)return jsonify(users_output)
""" 输出
当前页的数据列表 [{'pwd': '2', 'id': 2, 'username': '2', 'nick': '2'}]
是否有上一页 True
是否下一页 True
上一页的页码 1
下一页的页码 3
总记录数 7
总页数 7
"""

四、多模块配置 蓝图blueprint

在app项目中引用,可以在app中声明多个路径 /user、/admin 、/customer等等

from controller.user_controller import userapp = Flask(__name__)
app.config.from_object(config)
db.init_app(app)app.register_blueprint(user, url_prefix="/user")

在子应用中声明 controller/user_controller

from flask import Blueprint, jsonify, request, jsonuser = Blueprint('user', __name__)# 查询全部 http://127.0.0.1:5000/user/list
@user.route('/list')
def list_users():users = User.query.all()print(users)users_output = []for user in users:users_output.append(user.to_json())return jsonify(users_output)

五、统一过滤器

在app.py文件加入前置过滤器

# 引用配置文件
import config# 全局拦截器校验token
@app.before_request
def before():key = str(request.headers.get('TOKEN'))if key != format(config.key_access):return 'Password error'else:pass

配置文件包括

# 加载密钥
key_access = '&^_^&protect*py_&^_^&'

此时通过postman访问接口,会对header进行请求头校验,不满足请求直接被打回

 直接当携带了TOKEN=xxxx才可以正常访问该接口

 

http://www.yayakq.cn/news/489287/

相关文章:

  • 网站怎么定位唐山做网站汉狮网络
  • 建设网站哪家强手机 显示器自适应wordpress 主题
  • 网站建设费怎样摊销湛江网站建设湛江
  • 如何设计网站首页导航76款wordpress付费主题密码
  • 信息课做网站的软件长沙做软件的公司
  • 武昌做网站厦门工商网站查询企业信息
  • WordPress文章相册插件wordpress固定链接seo
  • 单页 网站模板域名网站模板
  • 字体图标网站黑彩网站充值就给你做单子
  • 合肥餐饮网站建设aso关键字优化
  • 回收手表的网站中国十大外贸上市公司排名
  • 事业单位网站建设费入什么科目电子商务网站建设实验
  • 武义公司网站建设网站建设自查报告
  • 奉贤专业网站建设购物网站 英文介绍
  • 网站后缀ga关键词排名优化怎么做
  • wordpress 主题 博客 广告位官网seo优化找哪家做
  • 免费php网站模板腾讯网站统计代码
  • 一个叫mit做app的网站如何进行关键词分析
  • 网站开发流程的8个步骤国内设计网站大全
  • 建站公司费用三明网站建设公司
  • 美团网站建设规划书招投标网站销售怎么做
  • 手机app微信网站建设做中文网站公司
  • 找工作的网站先搭建网站还是先做ui
  • 多平台网站建设asp.net网站安全
  • 网站制作软件下载wordpress 字符截取
  • 织梦网站做视频网站建设需求信息
  • 网站网站代理怎么做的重庆网站建设联系电话
  • 网站推广工作好做吗手机网页字体大小怎么设置
  • 广州建设厅电工网站网站换域名影响
  • 比较网站建设太原网络推广公司