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

网站建设服务合约全国公共资源交易中心

网站建设服务合约,全国公共资源交易中心,沈阳核工业建设工程总公司网站,线上推广有哪些url-统一资源定位符-不同的url对应不同的资源 作为服务端&#xff0c;url和视图函数的映射关系就是路由。 定义传递参数的方式&#xff1a; 1.创建动态url app.route("/login2/<username>/<passwd>") def login2(username, passwd):if username "…

url-统一资源定位符-不同的url对应不同的资源
作为服务端,url和视图函数的映射关系就是路由。

定义传递参数的方式:
1.创建动态url

@app.route("/login2/<username>/<passwd>")
def login2(username, passwd):if username == "root" and passwd == "123456":return f"login success"else:return f"login false"

2.url携带参数:? &

记住传过来的东西都在我们flask的request对象,这个对象不需要我们管,flask框架已经给我们搞好了,需要什么,就用request的属性拿就好了

理解:接口 and API(登录为例)
接口:一般来说,是两个程序使用的,互相通信,A程序暴露一个接口,B程序调用即可。后端flask写好了接口,前端一般不涉及数据库,不能判断能否登陆成功(nodejs也可以虽做后端,只是不普遍),所以前程调用后端的接口(login接口),把账号密码参数传递过来,然后后端再去数据库里判断是否正确,再去做一步操作,并返回给前端登录是否成功。

接口文档:
url+请求方法+传递参数+返回结果

3.json 接收传递过来的json格式数据

from flask import Flask, request
app = Flask(__name__)@app.route("/login")
def login():print(request.json.get("username"))print(request.json.get("password"))return "login html"app.run(debug=True, host="0.0.0.0", port=9000)

在这里插入图片描述
postman一功能:怎么写程序发起这种请求
在这里插入图片描述

import requests
import jsonurl = "http://127.0.0.1:9000/login"#字典-》json格式字符串
payload = json.dumps({"username": "root","password": "123456"
})
headers = {'Content-Type': 'application/json'
}response = requests.request("GET", url, headers=headers, data=payload)print(response.text)

4.form表单传递数据

from flask import Flask, request
app = Flask(__name__)@app.route("/login")
def login():print(request.form.get("username"))print(request.form.get("password")return "login html"

html语言一定是要有响应的,所以不要忘记"return html",不然会报500状态🐎的错误。

发送的请求:可以有url携带参数(http头部)+body一种方式(data部分)。

浏览器默认GET方法,是不允许body数据传递,而是一Headers传递(全在url上)

    print(request.url) #整个路径print(request.path) #资源路径print(request.headers) #头部字段

在这里插入图片描述
5.小练习:登录注册功能

"""
@date: 2023/9/5
@file: 登录注册功能
@author: Jiangda
@desc: test"""from flask import Flask, request
app = Flask(__name__)user_dict = {}
@app.route("/register")
def register():username = request.json.get("username")passwd = request.json.get("passwd")re_passwd = request.json.get("re_passwd")if not (username and passwd and re_passwd):return "参数传递不完整"elif passwd != re_passwd:return "注册密码不一致"elif username in user_dict:return "用户已注册"else:user_dict[username] = passwdprint(f"user_dict is {user_dict}")return "register success!"app.run(debug=True, host="0.0.0.0", port=9000)

拆分

入口文件:
server.py
排查问题两大思路:1.新增文件有没有运行。2.有没有绑定到核心对象app上

from app import create_app
sq_app = create_app()
sq_app.run(host = sq_app.config['HOST'],port = sq_app.config['PORT'],debug = sq_app.config['DEBUG'])

app.py
核心对象的设置和创建,每一个核心对象是一个网站,可以运行很多核心对象

import os
from flask import Flaskdef create_app():sq_app = Flask(__name__)# 方式一:从配置文件中读取#    if isinstance(obj, str):#        obj = import_string(obj)#    for key in dir(obj):#        if key.isupper():#            self[key] = getattr(obj, key)sq_app.config.from_object('config.settings')# 方式二:从环境变量中读取(好处:根据不同的系统环境加载不同的配置文件)if 'FLASK_CONF' in os.environ:sq_app.config.from_envvar('FLASK_CONF')return sq_app

./config/settings.py

DEBUG = 'True'
HOST = "0.0.0.0"
PORT = 9000

蓝图
就像一个中间层,方便管理路由
app – bp – 视图

视图先绑bp,bp再去绑定app
.route/__init__.py

from .view01 import view01_bpdef init_app(app):app.register_blueprint(view01_bp)

.route/view01.py

# 管理视图
from flask import Blueprintview01_bp = Blueprint("view01", __name__, url_prefix="/v1/")@view01_bp.route("index")
def index():return "this is index"

app.py
在crete_app()中添加

    import routerrouter.init_app(sq_app) #将蓝图与app绑定

综合:登录注册(拆分+蓝图)

在这里插入图片描述
server.py

from app import create_app
sq_app = create_app()
sq_app.run(host = sq_app.config['HOST'],port = sq_app.config['PORT'],debug = sq_app.config['DEBUG'])

app.py

import os
from flask import Flaskdef create_app():sq_app = Flask(__name__)# 方式一:从配置文件中读取sq_app.config.from_object('config.settings')# 方式二:从环境变量中读取(好处:根据不同的系统环境加载不同的配置文件)if 'FLASK_CONF' in os.environ:sq_app.config.from_envvar('FLASK_CONF')import routerrouter.init_app(sq_app) #将蓝图与app绑定return sq_app

config.settings.py

DEBUG = 'True'
HOST = "0.0.0.0"
PORT = 9000# 全局变量
user_dict = {}

router/…
__init__.py

from .login import login_bp
from .register import register_bpdef init_app(app):app.register_blueprint(login_bp)app.register_blueprint(register_bp)

login.py

from flask import Blueprint, request
from config.settings import user_dictlogin_bp = Blueprint("login_bp", __name__, url_prefix="/v1")@login_bp.route("login")
def login():user = request.json.get("username")passwd = request.json.get("passwd")local_user_passwd = user_dict.get(user)if local_user_passwd and passwd == local_user_passwd:return "login success!"return "login fail"

register.py

from flask import Blueprint, request
from config.settings import user_dictregister_bp = Blueprint("register_bp", __name__, url_prefix="/v1")@register_bp.route("register")
def register():username = request.json.get("username")passwd = request.json.get("passwd")re_passwd = request.json.get("re_passwd")if not (username and passwd and re_passwd):return "参数传递不完整"elif passwd != re_passwd:return "注册密码不一致"elif username in user_dict:return "用户已注册"else:user_dict[username] = passwdprint(f"user_dict is {user_dict}")return "register success!"

用postman的GET方法+json数据格式按要求测试。

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

相关文章:

  • 哈尔滨快速建站案例网站左侧导航代码
  • 手机wap网站的分析磁力链最佳的搜索引擎
  • 北京 外贸网站国内翻国外加速器
  • 网站建设杭州公司魔兽做图下载网站
  • 慈溪市建设局网站常德网站设计
  • 做网站都需要什么软件企业查询宝在线查询
  • 上虞区建设局网站泉州网站关键词优化
  • 图片 网站源码网站设计思想
  • 网站的运作方式如何用微信小程序开店
  • 怎么做网站中英文版本备案期间网站
  • 做健康食品的网站中国营销网
  • 正规设计兼职网站有哪些襄阳市住房和城乡建设厅网站上
  • 江苏网站建设企业软件开发的软件
  • 营销型集团网站建设基于c 的网站开发
  • 大沥南海网站建设什么网站做的很好
  • 一级a做片免费网站上海建桥学院门户网站
  • 中国石油大学网站建设做网站需要icp吗
  • 个人网站不备案会怎么样延安免费做网站
  • 手表网站建设策划书软文推广的作用
  • 东莞哪家建网站公司好网站里的动态是如何制作
  • jquery网站引导插件电子商务网站建设与管理感想和收获
  • 百度地图网页版在线使用seo兼职招聘
  • vs215开发python网站开发给六人游做网站开发的
  • 成都网站设计开发公司哪个网站可以看免费的电视剧
  • 网站策划常用软件全屋定制设计软件有哪些
  • 合肥建立网站网站的功能规范
  • 网站做404是什么意思抖音广告推广怎么做
  • 肇庆网站制作软件河北石家庄最新数据消息
  • 网站将要准备建设的内容有哪些上海共富新村网站建设
  • 嘉兴市秀洲区住房和建设局网站2017设计工作室做网站