网站上的淘客组件是怎样做的网络营销推广方法十种

news/2025/10/2 2:36:53/文章来源:
网站上的淘客组件是怎样做的,网络营销推广方法十种,物流系统网站建设 的网站描述,专门做网站的公司与外包公司有哪些Flask 框架提供了强大的 Session 模块组件#xff0c;为 Web 应用实现用户注册与登录系统提供了方便的机制。结合 Flask-WTF 表单组件#xff0c;我们能够轻松地设计出用户友好且具备美观界面的注册和登录页面#xff0c;使这一功能能够直接应用到我们的项目中。本文将深入探…Flask 框架提供了强大的 Session 模块组件为 Web 应用实现用户注册与登录系统提供了方便的机制。结合 Flask-WTF 表单组件我们能够轻松地设计出用户友好且具备美观界面的注册和登录页面使这一功能能够直接应用到我们的项目中。本文将深入探讨如何通过 Flask 和 Flask-WTF 构建一个完整的用户注册与登录系统以及如何对页面进行优化美化提高用户体验。通过这一系统用户能够方便注册账户、安全登录并且我们能够有效管理用户的会话信息为 Web 应用的用户管理提供一种高效的解决方案。 什么是Session机制 Session 是一种在 Web 应用中用于存储用户特定信息的机制。它允许在用户访问网站时存储和检索信息以便在用户的不同请求之间保持状态。Session 机制在用户登录、购物网站、个性化设置等场景中得到广泛应用它为用户提供了更加连贯和个性化的体验。在 Flask 中通过 Flask Session 模块可以方便地使用 Session 实现用户状态的维护和管理。 在 Web 开发中HTTP 协议是无状态的即每个请求都是独立的服务器不会记住之前的请求信息。为了解决这个问题引入了 Session 机制。基本思想是在用户访问网站时服务器生成一个唯一的 Session ID并将这个 ID 存储在用户的浏览器中通常通过 Cookie。同时服务器端会保存一个映射将 Session ID 与用户的相关信息关联起来这样在用户的后续请求中服务器就能根据 Session ID 找到相应的用户信息从而实现状态的保持。 Session 的认证流程通常包括以下步骤 用户登录 用户通过提供用户名和密码进行登录。在登录验证成功后服务器为该用户创建一个唯一的 Session ID并将这个 ID 存储在用户浏览器的 Cookie 中。Session 存储 服务器端将用户的相关信息如用户 ID、权限等与 Session ID 关联起来并将这些信息存储在服务器端的 Session 存储中。Session 存储可以是内存、数据库或其他持久化存储方式。Session ID 传递 服务器将生成的 Session ID 发送给用户浏览器通常是通过 Set-Cookie 头部。这个 Cookie 会在用户的每次请求中被包含在 HTTP 头中。后续请求 用户在后续的请求中会携带包含 Session ID 的 Cookie。服务器通过解析请求中的 Session ID从 Session 存储中检索用户的信息以恢复用户的状态。认证检查 服务器在每次请求中检查 Session ID 的有效性并验证用户的身份。如果 Session ID 无效或过期用户可能需要重新登录。用户登出 当用户主动注销或 Session 过期时服务器将删除与 Session ID 关联的用户信息用户需要重新登录。 总体而言Session 的认证流程通过在客户端和服务器端之间传递唯一的 Session ID实现了用户状态的持久化和管理。这种机制使得用户可以在多个请求之间保持登录状态提供了一种有效的用户认证方式。在 Flask 中开发者可以方便地使用 Flask 提供的 Session 模块来实现这一流程。 Session 认证基础 默认情况下直接使用Session模块即可实现Session登录会话保持该方式是将Session存储到内存中程序重启后即释放Session的设置一般可以通过使用session[username]赋值的方式进行如需验证该Session的可靠性则只需要调用session.get方法即可一得到特定字段通过对字段的判断即可实现认证机制。 如下是一个Flask后端代码运行后通过访问http://127.0.0.1:5000进入到登录这页面。 from flask import Flask,session,render_template,request,Response,redirect,url_for from functools import wraps import osapp Flask(__name__, static_folder./template,template_folder./template) app.config[SECRET_KEY] os.urandom(24)# 登录认证装饰器 def login_required(func):wraps(func)def wrapper(*args, **kwargs):if session.get(username) ! None and session.get(is_login) True:print(登陆过则继续执行原函数)return func(*args, **kwargs)else:print(没有登录则跳转到登录页面)resp Response()resp.status_code200resp.data scriptwindow.location.href/login;/scriptreturn respreturn wrapperapp.route(/login,methods[GET,POST]) def login():if request.method GET:html form action/login methodpostp账号: input typetext nameusername/pp密码: input typepassword namepassword/pinput typesubmit value登录/formreturn htmlif request.method POST:get_dict request.form.to_dict()get_username get_dict[username]get_password get_dict[password]if (get_username lyshark or get_username admin) and get_password 123123:session[username] get_usernamesession[is_login] Trueprint(登录完成直接跳到主页)resp Response()resp.status_code200resp.data scriptwindow.location.href/index;/scriptreturn respelse:return 登陆失败return 未知错误# 主页菜单 app.route(/index,methods [GET,POST]) login_required def index():username session.get(username)return 用户 {} 您好,这是主页面.format(username)# 第二个菜单 app.route(/get,methods [GET,POST]) login_required def get():username session.get(username)return 用户 {} 您好,这是子页面.format(username)app.route(/logout,methods [GET,POST]) login_required def logout():username session.get(username)# 登出操作session.pop(username)session.pop(is_login)session.clear()return 用户 {} 已注销.format(username)if __name__ __main__:app.run()程序运行后当用户访问http://127.0.0.1:5000地址则会跳转到login登陆页面此时如果用户第一次访问则会输出如下所示的登陆信息 通过输入正确的用户名lyshark和密码123123则可以登录成功此处登录的用户是lyshark如下图。 通过输入不同的用户登录会出现不同的页面提示信息如下图则是admin的主页信息。 当我们手动输入logout时则此时会退出登录用户后台也会清除该用户的Session在开发中可以自动跳转到登出页面 Session 使用数据库 通过结合 Session 与 SQLite 数据库我们可以实现一个更完善的用户注册、登录以及密码修改功能。在这个案例中首先用户可以通过注册表单输入用户名、密码等信息这些信息经过验证后将被存储到 SQLite 数据库中。注册成功后用户可以使用相同的用户名和密码进行登录。登录成功后我们使用 Flask 的 Session 机制将用户信息保存在服务器端确保用户在访问其他页面时仍然处于登录状态。 为了增加更多功能我们还可以实现密码修改的功能。用户在登录状态下通过密码修改表单输入新的密码我们将新密码更新到数据库中确保用户可以安全地更改密码。这个案例综合运用了 Flask、SQLite 和 Session 等功能为 Web 应用提供了一套完整的用户管理系统。 from flask import Flask,request,render_template,session,Response import sqlite3,os from functools import wrapsapp Flask(__name__)app.config[SECRET_KEY] os.urandom(24)# 创建数据库 def UserDB():conn sqlite3.connect(./database.db)cursor conn.cursor()create create table UserDB( \uid INTEGER primary key AUTOINCREMENT not null unique, \username char(64) not null unique, \password char(64) not null, \email char(64) not null \)cursor.execute(create)conn.commit()cursor.close()conn.close()# 增删改查简单封装 def RunSqlite(db,table,action,field,value):connect sqlite3.connect(db)cursor connect.cursor()# 执行插入动作if action insert:insert finsert into {table}({field}) values({value});if insert None or len(insert) 0:return Falsetry:cursor.execute(insert)except Exception:return False# 执行更新操作elif action update:update fupdate {table} set {value} where {field};if update None or len(update) 0:return Falsetry:cursor.execute(update)except Exception:return False# 执行查询操作elif action select:# 查询条件是否为空if value none:select fselect {field} from {table};else:select fselect {field} from {table} where {value};try:ref cursor.execute(select)ref_data ref.fetchall()connect.commit()connect.close()return ref_dataexcept Exception:return False# 执行删除操作elif action delete:delete fdelete from {table} where {field};if delete None or len(delete) 0:return Falsetry:cursor.execute(delete)except Exception:return Falsetry:connect.commit()connect.close()return Trueexcept Exception:return False# 创建数据库 app.route(/create) def create():UserDB()return create success# 登录认证装饰器 def login_required(func):wraps(func)def wrapper(*args, **kwargs):if session.get(username) ! None and session.get(is_login) True:print(登陆过则继续执行原函数)return func(*args, **kwargs)else:print(没有登录则跳转到登录页面)resp Response()resp.status_code200resp.data scriptwindow.location.href/login;/scriptreturn respreturn wrapper# 用户注册页面 app.route(/register,methods[GET,POST]) def register():if request.method GET:html form action/register methodpostp账号: input typetext nameusername/pp密码: input typepassword namepassword/pp邮箱: input typetext, nameemail/pinput typesubmit value用户注册/formreturn htmlif request.method POST:username request.form.get(username)password request.form.get(password)email request.form.get(email)if RunSqlite(database.db,UserDB,select,username,fusername{username}) []:insert RunSqlite(database.db,UserDB,insert,username,password,email,f{username},{password},{email})if insert True:return 创建完成else:return 创建失败else:return 用户存在return 未知错误# 用户登录模块 app.route(/login,methods[GET,POST]) def login():if request.method GET:html form action/login methodpostp账号: input typetext nameusername/pp密码: input typepassword namepassword/pinput typesubmit value登录/formreturn htmlif request.method POST:username request.form.get(username)password request.form.get(password)select RunSqlite(database.db,UserDB,select,username,password,fusername{username})if select ! []:# 继续验证密码if select[0][1] password:session[username] usernamesession[is_login] Trueprint(登录完成直接跳到主页)resp Response()resp.status_code 200resp.data scriptwindow.location.href/index;/scriptreturn respelse:return 密码不正确else:return 用户不存在return 未知错误# 修改密码 app.route(/modify,methods[GET,POST]) login_required def modify():if request.method GET:html form action/modify methodpostp新密码: input typepassword namenew_password/pinput typesubmit value修改密码/formreturn htmlif request.method POST:username session.get(username)new_password request.form.get(new_password)update RunSqlite(database.db,UserDB,update,fusername{username},fpassword{new_password})if update True:# 登出操作session.pop(username)session.pop(is_login)session.clear()print(密码已更新,请重新登录)resp Response()resp.status_code 200resp.data scriptwindow.location.href/login;/scriptreturn respelse:return 密码更新失败return 未知错误# 主页菜单 app.route(/index,methods [GET,POST]) login_required def index():username session.get(username)return 用户 {} 您好,这是主页面.format(username)# 第二个菜单 app.route(/get,methods [GET,POST]) login_required def get():username session.get(username)return 用户 {} 您好,这是子页面.format(username)app.route(/logout,methods [GET,POST]) login_required def logout():username session.get(username)# 登出操作session.pop(username)session.pop(is_login)session.clear()return 用户 {} 已注销.format(username)if __name__ __main__:app.run(debugTrue)案例被运行后首先通过调用http://127.0.0.1:5000/create创建database.db数据库接着我们可以通过访问/register路径实现账号注册功能如下我们注册lyshark密码是123123输出效果如下所示 通过访问/modify可实现对用户密码的修改但在修改之前需要先通过/login页面登录后进行否则会默认跳转到用户登录页面中 使用WTForms登录模板 在如上代码基础上我们着重增加一个美化登录模板以提升用户在注册登录流程中的整体体验。通过引入WTF表单组件和Flask-WTF扩展在前端实现了一个更友好的登录页面。 此登录模板的设计考虑了页面布局、颜色搭配、表单样式等因素以确保用户在输入用户名和密码时感到轻松自然。同时我们利用Flask-WTF的验证器功能对用户输入的数据进行有效性检查保障了用户信息的安全性。 首先我们需要在template目录下创建register.html前端文件用于用户注册并写入以下代码。 html headlink relstylesheet hrefhttps://www.lyshark.com/javascript/bootstrap/3.3.7/css/bootstrap.min.csslink hrefhttps://www.lyshark.com/javascript/font-awesome/4.7.0/css/font-awesome.min.css relstylesheet typetext/css /link hrefhttps://www.lyshark.com/javascript/other/my_login.css relstylesheet typetext/css / /head bodydiv classcontainerdiv classrowdiv classcol-md-offset-3 col-md-6form action/register methodpost classform-horizontal{{ form.csrf_token }}span classheading用 户 注 册/spandiv classform-group{{ form.username }}i classfa fa-user/ia href/login classfa fa-question-circle/a/divdiv classform-group{{ form.email }}i classfa fa-envelope/i/divdiv classform-group{{ form.password }}i classfa fa-lock/i/divdiv classform-group{{ form.RepeatPassword }}i classfa fa-unlock-alt/i/div{{ form.submit }}/form/div/div/div /body /html接着继续创建login.html前端文件用于登录账号时使用并写入以下代码。 html headlink relstylesheet hrefhttps://www.lyshark.com/javascript/bootstrap/3.3.7/css/bootstrap.min.csslink hrefhttps://www.lyshark.com/javascript/font-awesome/4.7.0/css/font-awesome.min.css relstylesheet typetext/css /link hrefhttps://www.lyshark.com/javascript/other/my_login.css relstylesheet typetext/css / /headbodydiv classcontainerdiv classrowdiv classcol-md-offset-3 col-md-6form action/login methodpost classform-horizontal{{ form.csrf_token }}span classheading用 户 登 录/spandiv classform-group{{ form.username }}i classfa fa-user/i/divdiv classform-group help{{ form.password }}i classfa fa-lock/ia href# classfa fa-question-circle/a/divdiv classform-groupbutton typesubmit classbtn btn-success登 录 后 台/button/div/form/div/div/div/body /html后台代码部分我们需要在原代码的基础之上增加对前端注册和登录页面的渲染类此处使用flask_wtf组件实现渲染生成具体代码如下。 from flask import Flask,request,render_template,session,Response from functools import wraps import sqlite3,osfrom flask_wtf import FlaskForm from wtforms import widgets,validators from wtforms.validators import DataRequired,Regexp,DataRequired, Length, Email, EqualTo, NumberRange from wtforms.fields import (StringField, PasswordField, DateField, BooleanField,DateTimeField,TimeField,SelectField, SelectMultipleField, TextAreaField,FloatField,HiddenField,RadioField, IntegerField, DecimalField, SubmitField, IntegerRangeField)# app Flask(__name__, static_folder./template,template_folder./template) app Flask(__name__)app.config[SECRET_KEY] d3d3Lmx5c2hhcmsuY29t# ----------------------------------------------------------------------------- # 创建数据库 def UserDB():conn sqlite3.connect(database.db)cursor conn.cursor()create create table UserDB( \uid INTEGER primary key AUTOINCREMENT not null unique, \username char(64) not null unique, \password char(64) not null, \email char(64) not null \)cursor.execute(create)conn.commit()cursor.close()conn.close()# 增删改查简单封装 def RunSqlite(db,table,action,field,value):connect sqlite3.connect(db)cursor connect.cursor()# 执行插入动作if action insert:insert finsert into {table}({field}) values({value});if insert None or len(insert) 0:return Falsetry:cursor.execute(insert)except Exception:return False# 执行更新操作elif action update:update fupdate {table} set {value} where {field};if update None or len(update) 0:return Falsetry:cursor.execute(update)except Exception:return False# 执行查询操作elif action select:# 查询条件是否为空if value none:select fselect {field} from {table};else:select fselect {field} from {table} where {value};try:ref cursor.execute(select)ref_data ref.fetchall()connect.commit()connect.close()return ref_dataexcept Exception:return False# 执行删除操作elif action delete:delete fdelete from {table} where {field};if delete None or len(delete) 0:return Falsetry:cursor.execute(delete)except Exception:return Falsetry:connect.commit()connect.close()return Trueexcept Exception:return False# ----------------------------------------------------------------------------- # 生成用户注册表单 class RegisterForm(FlaskForm):username StringField(validators[DataRequired(message用户名不能为空),Length(min1, max15, message用户名长度必须大于%(min)d且小于%(max)d)],widgetwidgets.TextInput(),render_kw{class: form-control, placeholder:输入注册用户名})email StringField(validators[validators.DataRequired(message邮箱不能为空),validators.Email(message邮箱格式输入有误)],render_kw{class:form-control, placeholder:输入Email邮箱})password PasswordField(validators[validators.DataRequired(message密码不能为空),validators.Length(min5, message用户名长度必须大于%(min)d),validators.Regexp(regex[0-9a-zA-Z]{5,},message密码不允许使用特殊字符)],widgetwidgets.PasswordInput(),render_kw{class: form-control, placeholder:输入用户密码})RepeatPassword PasswordField(validators[validators.DataRequired(message密码不能为空),validators.Length(min5, message密码长度必须大于%(min)d),validators.Regexp(regex[0-9a-zA-Z]{5,},message密码不允许使用特殊字符),validators.EqualTo(password,message两次密码输入必须一致)],widgetwidgets.PasswordInput(),render_kw{class: form-control, placeholder:再次输入密码})submit SubmitField(label用 户 注 册, render_kw{ class:btn btn-success })# 生成用户登录表单 class LoginForm(FlaskForm):username StringField(validators[validators.DataRequired(message),validators.Length(min4, max15, message),validators.Regexp(regex[0-9a-zA-Z]{4,15}, message)],widgetwidgets.TextInput(),render_kw{class:form-control, placeholder:请输入用户名或电子邮件})password PasswordField(validators[validators.DataRequired(message),validators.Length(min5, max15,message),validators.Regexp(regex[0-9a-zA-Z]{5,15},message)],widgetwidgets.PasswordInput(),render_kw{class:form-control, placeholder:请输入密码})# ----------------------------------------------------------------------------- # 创建数据库 app.route(/create) def create():UserDB()return create success# 登录认证装饰器 def login_required(func):wraps(func)def wrapper(*args, **kwargs):if session.get(username) ! None and session.get(is_login) True:print(登陆过则继续执行原函数)return func(*args, **kwargs)else:print(没有登录则跳转到登录页面)resp Response()resp.status_code200resp.data scriptwindow.location.href/login;/scriptreturn respreturn wrapper# 用户注册页面 app.route(/register,methods[GET,POST]) def register():form RegisterForm(csrf_enabled True)if request.method POST:if form.validate_on_submit():username form.username.datapassword form.RepeatPassword.dataemail form.email.dataprint(用户: {} 邮箱: {}.format(username,email))if RunSqlite(database.db, UserDB, select, username, fusername{username}) []:insert RunSqlite(database.db, UserDB, insert, username,password,email,f{username},{password},{email})if insert True:return 创建完成else:return 创建失败else:return 用户存在return render_template(register.html, formform)# 用户登录页面 app.route(/login,methods[GET,POST]) def login():form LoginForm(csrf_enabled True)if request.method POST:username form.username.datapassword form.password.dataselect RunSqlite(database.db,UserDB,select,username,password,fusername{username})if select ! []:# 继续验证密码if select[0][1] password:session[username] usernamesession[is_login] Trueprint(登录完成直接跳到主页)resp Response()resp.status_code 200resp.data scriptwindow.location.href/index;/scriptreturn respelse:return 密码不正确else:return 用户不存在return render_template(login.html, formform)# 修改密码 app.route(/modify,methods[GET,POST]) login_required def modify():if request.method GET:html form action/modify methodpostp新密码: input typepassword namenew_password/pinput typesubmit value修改密码/formreturn htmlif request.method POST:username session.get(username)new_password request.form.get(new_password)update RunSqlite(database.db,UserDB,update,fusername{username},fpassword{new_password})if update True:# 登出操作session.pop(username)session.pop(is_login)session.clear()print(密码已更新,请重新登录)resp Response()resp.status_code 200resp.data scriptwindow.location.href/login;/scriptreturn respelse:return 密码更新失败return 未知错误# 主页菜单 app.route(/index,methods [GET,POST]) login_required def index():username session.get(username)return 用户 {} 您好,这是主页面.format(username)# 第二个菜单 app.route(/get,methods [GET,POST]) login_required def get():username session.get(username)return 用户 {} 您好,这是子页面.format(username)app.route(/logout,methods [GET,POST]) login_required def logout():username session.get(username)# 登出操作session.pop(username)session.pop(is_login)session.clear()return 用户 {} 已注销.format(username)if __name__ __main__:app.run(debugTrue)目录结果如下图所示 当用户访问/register时则可以看到通过flask_wtf渲染后的用户注册页面如下图所示 用户访问/login时则是用户登录页面如下图所示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网站有前途吗可以自己免费做的软件

最近再做一个web项目,目前决定先把应用放在云服务器上。我选择的云主机是aliyun的Ubuntu 16.04主机。部署好云主机环境后,就需要把我在本地开发好的程序上传到云主机了。刚开始打算用ftp协议来传输,于是参照网上的教程(Ubuntu 16.…

经营性商务网站建设需要备案吗wordpress 如何编辑器

Spring 是包含众多工具的 IoC 容器,存的是对象,对象这个词在 Spring 的范围内,称之为 bean IoC 是控制反转 控制权进行了反转,比如对某一个东西的控制权在 A 手上,结果变成了 B ,Spring 管理的是 bean ,所以这里的控制权指的是 bean 的控制权,也就是对象的控制权进行了反转 …

微信网站 顶部导航菜单计算机网络课程设计

fork系统调?创建?进程,也就?个进程变成了两个进程,两个进程执?相同的代码,只是fork系统调?在?进程和?进程中的返回值不同。打开linux-5.4.34/arch/x86/entry/syscalls/syscall_64.tbl 文件,56、 57、 58号系统调?__x64_sy…

怎么做网站广告代理商国外有哪些优秀的网站

一:Cstring类的由来 在C语言中,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用…

vs2013 网站建设wordpress 去掉发布者

目录 1. 思路(图解)2. 代码 题目链接:leetcode 88. 合并两个有序数组 题目描述: 1. 思路(图解) 思路一:(不满足题目要求) 1. 创建一个大小为nums1和nums2长度之和的…

AI元人文:价值原语构想——迈向动态博弈的价值生态

AI元人文:价值原语构想——迈向动态博弈的价值生态 引言:从“价值对齐”到“价值共生” 在人工智能发展的狂飙突进中,我们正面临一个根本性的悖论:我们试图赋予机器超越人类的智能,却期望其价值体系像一台精密的钟…

常州网站外包网络游戏新规

外连接就是允许不满足条件的字段查询出来转载于:https://www.cnblogs.com/classmethond/p/10129069.html

做旅行义工网站蚁怎么创建网页文件

四边形教学内容:教材第34页?——36页教学目标:1.直观感知四边形,能区分和辨认四边形,知道四边形的特征.进一步认识长方形和正方形,知道它们的角都是直角.2.通过画一画、找一找、拼一拼等活动,培养学生[此文转于斐斐课件园?FFKJ.Net]的观察比较和概括抽象的能力,发展空间想象能…

东莞大型企业网站建设网站建设国风网络公司

哟哟,切克闹,视频剪辑达人们,是不是在视频素材的海洋里迷航了?别着急,今天我就给大家分享几个超实用的无水印短视频素材合集网,让你的创作更加得心应手,从此素材不再是你的烦恼 1,蛙…

网站虚拟机可以自己做吗松阳县建设局网站

1、map介绍 map是C STL的一个关联容器,它提供一对一的数据处理能力。其中,各个键值对的键和值可以是任意数据类型,包括 C 基本数据类型(int、double 等)、使用结构体或类自定义的类型。 第一个可以称为关键字(key)&…

网站还难做啊wordpress 视频 广告

如何在win7下安装Python及配置1、首先,从搜索python官载适合自己电脑python版本。2标右击桌面“计算机”择打开菜单栏中的性”。3、WindowsXP时,在新弹出的属性窗口,选择“高级”->“环境变量”。Windows7是,在新弹出的属性窗口…

阿里云做网站需要些什么简单网页设计html代码

Go语言入门 Go语言入门教程 很多人将 Go 语言 称为 21 世纪的 C 语言,因为 Go 不仅拥有 C 语言的简洁和性能,而且还很好的提供了 21 世纪互联网环境下服务端开发的各种实用特性,让开发者在语言级别就可以方便的得到自己想要的东西。 在 Go…

什么网站做任务网站标题更改后要多久才能收录

概述 异常的基类是 Throwable, Throwable 有两个子类: Exception : 表示可以恢复的异常, 编译器可以捕捉。Error : 表示编译时和系统错误, 表示系统在运行期间出现了严重的错误, 属于不可恢复的错误。 受检异常和非受检异常 受检异常指的是在编译期间会接受编译器检查, 且必…

怎样制作网站和软件wordpress扁平化风格主题

说明:跟着learnopengl的内容学习,不是纯翻译,只是自己整理记录。 强烈推荐原文,无论是内容还是排版。 原文链接 本文地址: http://blog.csdn.net/aganlengzi/article/details/50448453 坐标系统 Coordinate Systems 在…

济南优化网站排名郑州网络什么时候恢复

很多新手朋友在学习完数据结构与算法之后,都想找个平台磨练自己的技艺。那么LeetCode绝对是不二之选。但是官网刷题不是很友好,那么今天给大家介绍一款刷LeetCode神器。也是未来工作之后的摸鱼神器。 leetcode-editor 本打工人的摸(nei&am…

绝对域名做网站可以用asp做哪些网站

你为什么需要JpomSpringBoot、Jboot等框架开发的项目通常是以Jar的方式在后台运行的,如果只有一两个项目,管理起来不是太麻烦,但是当项目多了以后,管理起来就不是那么方便了,当项目出现问题时,能够通过Jpom…

《多分支条件判断优化:switch-case 结构的技术价值分析》

在程序开发过程中,条件分支控制是实现业务逻辑的核心手段。从简单的参数校验到复杂的状态流转,开发者都需要借助条件判断结构引导程序执行路径。if-else 与 switch-case 作为两种基础的分支控制结构,各自适用于不同…

大大福利站网站建设广东手机网站制作价格

目录 一、引言 视频效果展示: 1.启动页效果 2.登录页效果 3.注册页效果 4.歌曲列表页效果 5.播放页效果 二、详细设计 1.登陆注册功能 2.音乐列表页面 2.音乐播放功能 三、源码获取 一、引言 Android初学者开发第一个完整的实例项目应该就属《音乐播放器…

丰台seo网站关键词优化自动seo系统

table中合并单元格导致的css样式不同处理方式:1.每行都拆成一个table。2.多设置几个单元格的宽度(自适应失效、第一列都设置宽度也有可能失效)。

php开源企业网站系统北京 设计 网站建设

Centos7系统 docker指定版本安装【官方文档步骤】 官方文档地址:https://docs.docker.com/engine/install/centos/ # 1.安装yum工具及设置docker-ce镜像库 sudo yum install -y yum-utils# 国外的镜像下载太慢了改成阿里云镜像库 sudo yum-config-manager --add-rep…