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

ssh做网站步骤基本seo

ssh做网站步骤,基本seo,做带v头像的网站,wordpress如何配置文件一、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.khdw.cn/news/10205.html

相关文章:

  • 那个网站做淘宝推广比较好企业品牌网站营销
  • 自己做网站类型武汉网络推广seo
  • html5网站建设思路b站推广网站mmmnba
  • php网站安装说明书关键词优化的主要工具
  • 石家庄模板建站如何优化seo关键词
  • 上海网站建设的价格低app注册推广团队
  • 全球工业设计公司排名天天seo站长工具
  • 深圳做网站优化报价怎么在百度发帖
  • 深圳做网站三网合一aso网站
  • 切图网站市场推广方案ppt
  • 公司宣传册页面设计模板百度seo培训
  • wordpress添加贴吧表情关键词优化难度分析
  • 做淘客网站多少钱域名注册后怎么使用
  • 张掖市住房和城乡建设局网站培训机构网站
  • wordpress网站克隆seo技术培训泰州
  • 智库网站建设方案seo待遇
  • github使用WordPressseo案例分析方案
  • 免费创建自己的网站网络推广预算方案
  • 用手机做网站的app建网站流程
  • 拖拽式建站平台seo搜索引擎优化是
  • 好的网站设计培训学校b2b网站排名
  • 重庆网上商城网站建设公司金城武重庆森林经典台词
  • 自助建站和速成网站十大新媒体平台有哪些
  • 网站提示建设中网店网络营销与推广策划书
  • 网站建设学生选课课程设计报告网页制作素材模板
  • 温州最便宜网站建设网络营销做的比较好的企业
  • 网站建站好处怎么在百度上发帖推广
  • 中英文切换的网站怎么做网站软文是什么
  • 房产采集网站源代码宁波关键词排名优化
  • 敦化网站建设培训方案模板