Flask构建微电影(二)

第三章、项目分析、搭建目录及模型设计

3.1.前后台项目目录分析

微电影网站

  • 前台模块
  • 后台模块

 前台(home)

  • 数据模型:models.py
  • 表单处理:home/forms.py
  • 模板目录:templates/home

 后台(admin)

  • 数据模型:models.py
  • 表单处理:admin/forms.py
  • 模板目录:templates/admin
  • 静态文件:static

开始创建目录,如下:

 

 

3.2.蓝图构建项目目录

什么是蓝图?

一个应用中或跨用用制作应用组件和支持通用的模式

蓝图的作用

  • 将不同的功能模块化

  • 构建大型应用
  • 优化项目结构
  • 增强可读性,易于维护

如何使用蓝图构建项目目

(1)home/__init__.py

#coding:utf-8
__author__ = 'derek'from flask import Blueprinthome = Blueprint("home",__name__)import app.home.views

(2)admin/__init__.py

#coding:utf-8
__author__ = 'derek'from flask import Blueprintadmin = Blueprint("admin",__name__)import app.admin.views

(3)home/views.py

#coding:utf-8
__author__ = 'derek'from . import home    #导入蓝图

@home.route("/")
def index():return "<h1 style='color:green'>this is home</h1>"

(4)admin/views.py

#coding:utf-8
__author__ = 'derek'from . import admin   #导入蓝图

@admin.route("/")
def index():return "<h1 style='color:red'>this is admin</h1>"

(5)app/__init__.py

#coding:utf-8
__author__ = 'derek'from flask import Flask
app = Flask(__name__)
app.debug = True    #调式模式#导入蓝图对象,然后起个别名,易于区分
from app.home import home as home_blueprint
from app.admin import admin as admin_blueprint#注册蓝图
app.register_blueprint(home_blueprint)
app.register_blueprint(admin_blueprint,url_prefix = "/admin")   #url_prefix添加前缀

(6)app/manage.py

#coding:utf-8
__author__ = 'derek'from app import app         # 导入的app是app/__init__中实例化的对象:app = Flask(__name__)if __name__ == '__main__':app.run()

(7)运行项目(manage,py)

home

admin

3.3.会员及会员登录日志数据模型设计

 (1)安装flask-sqlalchemy

pip install -i https://pypi.douban.com/simple --trusted-host pypi.douban.com flask-sqlalchemy

 (2)app/models.py

    Flask-SQLAlchemy 配置

 表结构的设计

#coding:utf-8
__author__ = 'derek'
from datetime import datetime
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql
app
= Flask(__name__) #连接mysql数据库(用户名、密码、ip、端口和数据库名字) app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:123456@127.0.0.1:3306/movie" app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = Truedb = SQLAlchemy(app)#会员 class User(db.Model): #继承db.Model__tablename__ = "user" #数据库中表显示的名字id = db.Column(db.Integer,primary_key=True) #编号,int类型,主键name = db.Column(db.String(100),unique=True) #昵称,字符串类型(长度100),唯一pwd = db.Column(db.String(100)) #密码email = db.Column(db.String(100),unique=True) #邮箱phone = db.Column(db.String(11),unique=True) #手机info = db.Column(db.Text) #个性简介face = db.Column(db.String(255),unique=True) #头像addtime = db.Column(db.DateTime,index=True,default=datetime.now) #添加时间uuid = db.Column(db.String(255),unique=True) #唯一标识符userlogs = db.relationship('UserLog',backref='user') #会员日志外键关系def __repr__(self):return "<User %r>"%self.name#会员登录日志 class UserLog(db.Model):__tablename__ = "userlog"id = db.Column(db.Integer,primary_key=True) #编号#跟User表的id外键关联,类名小写user_id = db.Column(db.Integer,db.ForeignKey('user.id')) #所属会员ip = db.Column(db.String(100)) #登录ipaddtime = db.Column(db.DateTime,index=True,default=datetime.now) #登录时间def __repr__(self):return "<UserLog %r>"%self

3.4.标签、电影、上映预告数据模型设

class Tag(db.Model):__tablename__ = "tag"id = db.Column(db.Integer,primary_key=True)        #编号name = db.Column(db.String(100),unique=True)       #标题addtime = db.Column(db.DateTime,index=True,default=datetime.now)   #添加时间movies = db.relationship("Movie",backref="tag")    #电影外键关系关联def __repr__(self):return "<Tag %r>"%self.name#电影
class Movie(db.Model):__tablename__ = "movie"id = db.Column(db.Integer,primary_key=True)       #编号title = db.Column(db.String(255),unique=True)     #标题url = db.Column(db.String(255),unique=True)       #地址info = db.Column(db.Text)                          #简介logo = db.Column(db.String(255),unique=True)      #封面star = db.Column(db.SmallInteger)                  #星级playnum = db.Column(db.BigInteger)                #播放量commentnum = db.Column(db.BigInteger)             #评论数tag_id = db.Column(db.Integer,db.ForeignKey('tag.id'))   #所属标签area = db.Column(db.String(255))                  #上映地区release_time = db.Column(db.Date)                 #上映时间length = db.Column(db.String(100))                #电影播放时间addtime = db.Column(db.DateTime,index=True,default=datetime.now)   #添加时间def __repr__(self):return "<Movie %r>"%self.title#电影上映预告
class Preview(db.Model):__tablename__ = "preview"id = db.Column(db.Integer,primary_key=True)title = db.Column(db.String(255),unique=True)logo = db.Column(db.String(255),unique=True)addtime = db.Column(db.DateTime,index=True,default=datetime.now)def __repr__(self):return "<Preview %r>"%self.title

 

3.5.评论及收藏电影数据模型设计

#评论
class Comment(db.Model):__tablename__ = "comment"id = db.Column(db.Integer,primary_key=True)        #编号content = db.Column(db.Text)                       #内容movie_id = db.Column(db.Integer,db.ForeignKey("movie.id"))    #所属电影user_id = db.Column(db.Integer,db.ForeignKey("user.id"))      #所属用户addtime = db.Column(db.DateTime,index=True,default=datetime.now)    #添加时间def __repr__(self):return "Comment %r"%self.id#电影收藏
class Moviecol(db.Model):__tablename__ = "moviecol"id = db.Column(db.Integer, primary_key=True)  # 编号movie_id = db.Column(db.Integer, db.ForeignKey("movie.id"))  # 所属电影user_id = db.Column(db.Integer, db.ForeignKey("user.id"))  # 所属用户addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间def __repr__(self):return "Moviecol %r" % self.id

 要对应的跟User和Movie关联起来

class User(db.Model): ...comments = db.relationship("Comment",backref="user")   #评论外键关系关联moviecols = db.relationship("Moviecol",backref="user")   #电影收藏外键关系关联              
class Movie(db.Model):'
    '
    '
    comments = db.relationship("Comment",backref="movie" )          #评论外键关系关联moviecols = db.relationship("Moviecol",backref="movie" )          #电影收藏外键关系关联    

 

3.6.权限及角色数据模型设计

#权限
class Auth(db.Model):__tablename__ = "auth"id = db.Column(db.Integer,primary_key=True)       #编号name = db.Column(db.String(100),unique=True)      #名称url = db.Column(db.String(255),unique=True)       #地址addtime = db.Column(db.DateTime,index=True,default=datetime.now)   #添加时间def __repr__(self):return "<Auth %r>"%self.name#角色
class Role(db.Model):__tablename__ = "role"id = db.Column(db.Integer,primary_key=True)     #编号name = db.Column(db.String(100),unique=True)    #名称auths = db.Column(db.String(600))               #权限列表addtime = db.Column(db.DateTime,index=True,default=datetime.now)   #添加时间def __repr__(self):return "<Role %r>"%self.name

 

3.7.管理员、登录日志、操作日志数据模型设计

#管理员
class Admin(db.Model):__tablename__ = "admin"id = db.Column(db.Integer,primary_key=True)    #编号name = db.Column(db.String(100),unique=True)   #管理员账号pwd = db.Column(db.String(100))                 #管理员面is_super = db.Column(db.SmallInteger)           #是否为超级管理员,0为超级管理员role_id = db.Column(db.Integer,db.ForeignKey("role.id"))     #所属角色addtime = db.Column(db.DateTime,index=True,default=datetime.now)   #添加时间adminlogs = db.relationship("Adminlog",backref='admin')     #管理员登录日志外键关系关联oplogs = db.relationship("Oplog",backref='admin')           #管理员操作日志外键关系关联def __repr__(self):return "<Admin %r>"%self.id#管理员登录日志
class Adminlog(db.Model):__tablename__ = "adminlog"id = db.Column(db.Integer,primary_key=True)            #编号admin_id = db.Column(db.Integer,db.ForeignKey("admin.id"))     #所属管理员ip = db.Column(db.String(100))        #登录ipaddtime = db.Column(db.DateTime,index=True,default=datetime.now)   #登录时间def __repr__(self):return "Adminlog %r"%self.id#操作日志
class Oplog(db.Model):__tablename__ = "oplog"id = db.Column(db.Integer,primary_key=True)            #编号admin_id = db.Column(db.Integer,db.ForeignKey('admin.id'))     #所属管理员ip = db.Column(db.String(100))        #登录ipreason = db.Column(db.String(600))    #操作原因addtime = db.Column(db.DateTime, index=True, default=datetime.now)   #登录时间def __repr__(self):return "Oplog %r" % self.id

 

3.8.生成数据库表

(1)创建数据库

create database derek default charset utf8 collate utf8_general_ci;

(2)安装pymysql

pip install pymysql

(3)在models.py下面加上代码,然后运行,就生成到数据库里面了

if __name__ == '__main__':db.create_all()
#coding:utf-8
__author__ = 'derek'import pymysql
from flask import Flask
from datetime import datetimefrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)
#连接mysql数据库(用户名、密码、ip、端口和数据库名字)
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:123456@127.0.0.1:3306/movie"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = Truedb = SQLAlchemy(app)#会员
class User(db.Model):        #继承db.Model__tablename__ = "user"    #数据库中表显示的名字id = db.Column(db.Integer,primary_key=True)     #编号,int类型,主键name = db.Column(db.String(100),unique=True)    #昵称,字符串类型(长度100),唯一pwd = db.Column(db.String(100))                  #密码email = db.Column(db.String(100),unique=True)    #邮箱phone = db.Column(db.String(11),unique=True)     #手机info = db.Column(db.Text)                         #个性简介face = db.Column(db.String(255),unique=True)      #头像addtime = db.Column(db.DateTime,index=True,default=datetime.now)   #添加时间uuid = db.Column(db.String(255),unique=True)      #唯一标识符userlogs = db.relationship('UserLog',backref='user')   #会员日志外键关系comments = db.relationship("Comment",backref="user")   #评论外键关系关联moviecols = db.relationship("Moviecol",backref="user")   #电影收藏外键关系关联def __repr__(self):return "<User %r>"%self.name#会员登录日志
class UserLog(db.Model):__tablename__ = "userlog"id = db.Column(db.Integer,primary_key=True)        #编号#跟User表的id外键关联,类名小写user_id = db.Column(db.Integer,db.ForeignKey('user.id'))    #所属会员ip = db.Column(db.String(100))        #登录ipaddtime = db.Column(db.DateTime,index=True,default=datetime.now)   #登录时间def __repr__(self):return "<UserLog %r>"%self.id#标签
class Tag(db.Model):__tablename__ = "tag"id = db.Column(db.Integer,primary_key=True)        #编号name = db.Column(db.String(100),unique=True)       #标题addtime = db.Column(db.DateTime,index=True,default=datetime.now)   #添加时间movies = db.relationship("Movie",backref="tag")    #电影外键关系关联def __repr__(self):return "<Tag %r>"%self.name#电影
class Movie(db.Model):__tablename__ = "movie"id = db.Column(db.Integer,primary_key=True)       #编号title = db.Column(db.String(255),unique=True)     #标题url = db.Column(db.String(255),unique=True)       #地址info = db.Column(db.Text)                          #简介logo = db.Column(db.String(255),unique=True)      #封面star = db.Column(db.SmallInteger)                  #星级playnum = db.Column(db.BigInteger)                #播放量commentnum = db.Column(db.BigInteger)             #评论数tag_id = db.Column(db.Integer,db.ForeignKey('tag.id'))   #所属标签area = db.Column(db.String(255))                  #上映地区release_time = db.Column(db.Date)                 #上映时间length = db.Column(db.String(100))                #电影播放时间addtime = db.Column(db.DateTime,index=True,default=datetime.now)   #添加时间comments = db.relationship("Comment",backref="movie" )          #评论外键关系关联moviecols = db.relationship("Moviecol",backref="movie" )          #电影收藏外键关系关联def __repr__(self):return "<Movie %r>"%self.title#电影上映预告
class Preview(db.Model):__tablename__ = "preview"id = db.Column(db.Integer,primary_key=True)title = db.Column(db.String(255),unique=True)logo = db.Column(db.String(255),unique=True)addtime = db.Column(db.DateTime,index=True,default=datetime.now)def __repr__(self):return "<Preview %r>"%self.title#评论
class Comment(db.Model):__tablename__ = "comment"id = db.Column(db.Integer,primary_key=True)        #编号content = db.Column(db.Text)                       #内容movie_id = db.Column(db.Integer,db.ForeignKey("movie.id"))    #所属电影user_id = db.Column(db.Integer,db.ForeignKey("user.id"))      #所属用户addtime = db.Column(db.DateTime,index=True,default=datetime.now)    #添加时间def __repr__(self):return "Comment %r"%self.id#电影收藏
class Moviecol(db.Model):__tablename__ = "moviecol"id = db.Column(db.Integer, primary_key=True)  # 编号movie_id = db.Column(db.Integer, db.ForeignKey("movie.id"))  # 所属电影user_id = db.Column(db.Integer, db.ForeignKey("user.id"))  # 所属用户addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间def __repr__(self):return "Moviecol %r" % self.id#权限
class Auth(db.Model):__tablename__ = "auth"id = db.Column(db.Integer,primary_key=True)       #编号name = db.Column(db.String(100),unique=True)      #名称url = db.Column(db.String(255),unique=True)       #地址addtime = db.Column(db.DateTime,index=True,default=datetime.now)   #添加时间def __repr__(self):return "<Auth %r>"%self.name#角色
class Role(db.Model):__tablename__ = "role"id = db.Column(db.Integer,primary_key=True)     #编号name = db.Column(db.String(100),unique=True)    #名称auths = db.Column(db.String(600))               #权限列表addtime = db.Column(db.DateTime,index=True,default=datetime.now)   #添加时间def __repr__(self):return "<Role %r>"%self.name#管理员
class Admin(db.Model):__tablename__ = "admin"id = db.Column(db.Integer,primary_key=True)    #编号name = db.Column(db.String(100),unique=True)   #管理员账号pwd = db.Column(db.String(100))                 #管理员面is_super = db.Column(db.SmallInteger)           #是否为超级管理员,0为超级管理员role_id = db.Column(db.Integer,db.ForeignKey("role.id"))     #所属角色addtime = db.Column(db.DateTime,index=True,default=datetime.now)   #添加时间adminlogs = db.relationship("Adminlog",backref='admin')     #管理员登录日志外键关系关联oplogs = db.relationship("Oplog",backref='admin')           #管理员操作日志外键关系关联def __repr__(self):return "<Admin %r>"%self.id#管理员登录日志
class Adminlog(db.Model):__tablename__ = "adminlog"id = db.Column(db.Integer,primary_key=True)            #编号admin_id = db.Column(db.Integer,db.ForeignKey("admin.id"))     #所属管理员ip = db.Column(db.String(100))        #登录ipaddtime = db.Column(db.DateTime,index=True,default=datetime.now)   #登录时间def __repr__(self):return "Adminlog %r"%self.id#操作日志
class Oplog(db.Model):__tablename__ = "oplog"id = db.Column(db.Integer,primary_key=True)            #编号admin_id = db.Column(db.Integer,db.ForeignKey('admin.id'))     #所属管理员ip = db.Column(db.String(100))        #登录ipreason = db.Column(db.String(600))    #操作原因addtime = db.Column(db.DateTime, index=True, default=datetime.now)   #登录时间def __repr__(self):return "Oplog %r" % self.id
models.py所有代码

(4)查看数据库

show databases;
user movie;
show tables;

 

(5)添加一个角色

if __name__ == '__main__':# db.create_all()
role = Role(name="超级管理员",auths="")db.session.add(role)db.session.commit()

取数据库查看

desc role;
select * from role;

 

 (6)添加一个管理员

密码保存的时候采用hash加密

if __name__ == '__main__':# db.create_all()#添加角色# role = Role(#     name="超级管理员",#     auths=""# )# db.session.add(role)# db.session.commit()#添加管理员#对密码加密保存from werkzeug.security import generate_password_hashadmin = Admin(name="derek",pwd=generate_password_hash("123456"),is_super=0,role_id=1)db.session.add(admin)db.session.commit()

查看数据库

select * from admin\G;

 

上一篇:Flask构建微电影(一)

 

 

转载于:https://www.cnblogs.com/derek1184405959/p/9038294.html

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

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

相关文章

Android Studio开发第四篇版本管理Git(下)

前面一片介绍了在as下如何关联远程仓库&#xff0c;这篇就介绍在开发过程中怎么应用。 提交Push 如果本地开发代码有改动了或者你觉得某功能做完了&#xff0c;你打算把改动代码提交到远程仓库&#xff0c;这个时候很简单&#xff0c; 还是在工具栏找到VSC箭头朝上的按钮。 这时…

容器大小_无根容器内部结构浅析

随着云计算的发展&#xff0c;容器变得越来越流行&#xff0c;同时也产生了实现容器的新方案&#xff0c;其中之一就是无根容器。本文介绍了无根容器的内部结构&#xff0c;并分析了无根容器网络组件中的漏洞。随着云计算的发展&#xff0c;容器变得越来越流行&#xff0c;同时…

windows7使用Sphinx+PHP+MySQL详细介绍

安装&#xff08;Windows&#xff09; 1.官方下载 Sphinx下载地址&#xff1a; 下载 2.解压并重命名 此处下载版本为3.0.3&#xff0c;将 sphinx 文件夹命名为sphinx 3.文件夹目录介绍 sphinx --api(各语言支持的api) --bin&#xff08;二进制程序&#xff09; --doc&#xff0…

php layout布局文件,layout(布局) - jQuery EasyUI中文文档 - EasyUI中文站

Layout(布局)使用$.fn.layout.defaults重写默认值对象。布局容器有5个区域&#xff1a;北、南、东、西和中间。中间区域面板是必须的&#xff0c;边缘的面板都是可选的。每个边缘区域面板都可以通过拖拽其边框改变大小&#xff0c;也可以点击折叠按钮将面板折叠起来。布局可以进…

Bootstrap系列 -- 11. 基础表单

表单主要功能是用来与用户做交流的一个网页控件&#xff0c;良好的表单设计能够让网页与用户更好的沟通。表单中常见的元素主要包括&#xff1a;文本输入框、下拉选择框、单选按钮、复选按钮、文本域和按钮等。其中每个控件所起的作用都各不相同&#xff0c;而且不同的浏览器对…

python excel centos_centos中使用python遇到的几个问题

用python搞了一个从excel中读取cobbler节点信息并加入cobbler中的脚本&#xff0c;运行的过程中出了不少问题&#xff0c;这里记录下来&#xff0c;方便日后查找&#xff01;一、yum install python&#xff0c;我通过这个命令安装python&#xff0c;默认安装的是2.6的版本&…

oracle集群监听启动,在RAC中lsnrctl和srvctl操作监听区别

朋友今天询问了一个问题RAC中使用srvctl 操作监听和lsnrctl 操作监听结果不一样&#xff0c;下面我通过实验说明问题0.listener.ora文件内容LISTENER_RAC1 (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST rac1-vip)(PORT 1521)(IP FIRST))(ADDRESS (PROTO…

how to use webpart container in kentico

https://docs.kentico.com/k11/developing-websites/developing-websites-using-the-portal-engine/using-web-part-containers Webpart Container webpart container中的orangebox, SELECT * FROM dbo.CMS_WebPartContainer WHERE ContainerDisplayName LIKE %orange%; 把…

IE通过推理IE陈述的版本号

样例&#xff1a; 1. <!--[if !IE]> 除IE外都可识别 <![endif]--> 2. <!--[if IE]> 全部的IE可识别 <![endif]--> 3. <!--[if IE 5.0]> 仅仅有IE5.0能够识别 <![endif]--> 4. <!--[if IE 5]> 仅IE5.0与IE5.5能够识别 <![endif]--…

自己调试接口遇到的错误记录

200 请求成功500 请求失败 失败原因在http body里面403 未认证404 服务未找到 转载于:https://www.cnblogs.com/ruixin-jia/p/5734767.html

excel如何找到高频词_拟录取后:应届生和往届生档案哪里找;重灾院校区;高频词背诵表...

今日消息1、应届生和往届生档案哪里找&#xff1f;2、重灾院校区3、考研云督学班高频词背诵表汇总1、应届生和往届生档案哪里找&#xff1f;往年这个时候论文答辩、复试已经结束&#xff0c;已经进入毕业季&#xff01;现在你们毕业答辩结束了吗&#xff1f;你们都顺利上岸吗&a…

oracle 中表,oracle中表操作

1.1&#xff1a;创建一表空间 TABLESPACE01,初始大小50MB,允许自动增长数据库文件,每次增长10MBCREATE TABLESPACE TABLESPACE01LOGGINGDATAFILE’F:\TABLESPACE\DATA01.DBF’ SIZE 50MREUSE AUTOEXTEND ON NEXT 10M;1.2:创建用户 (oracle12c)此处创建用户报错&#xff0c;原因…

UDP Ping程序实现--第2关:接收并转发消息

✨创作不易&#xff0c;还希望各位大佬支持一下 &#x1f44d; 点赞&#xff0c;你的认可是我创作的动力&#xff01; ⭐️ 收藏&#xff0c;你的青睐是我努力的方向&#xff01; ✏️ 评论&#xff0c;你的意见是我进步的财富&#xff01; 任务描述 本关任务&#xff1a;在…

JAVA经典题--死锁案例

死锁原理: 两个线程相互等待对方释放同步监视器 例子程序: 1 public class TestDeadLock implements Runnable {2 3 public int flag 1;4 static Object o1 new Object(), o2 new Object();5 6 public void run() {7 if (flag 1) {8 s…

考研编程练习----排名

题目描述&#xff1a;今天的上机考试虽然有实时的Ranklist&#xff0c;但上面的排名只是根据完成的题数排序&#xff0c;没有考虑每题的分值&#xff0c;所以并不是最后的排名。给定录取分数线&#xff0c;请你写程序找出最后通过分数线的考生&#xff0c;并将他们的成绩按降序…

linux下安装dovecot

Dovecot是一个开源的&#xff0c;为Linux/Unix-like系统提供IMAP,POP3服务的软件。主要是为了安全产生的&#xff0c;不管大小应用&#xff0c;Dovecot都是一个非常优秀的选择。它非常快&#xff0c;配置简单&#xff0c;不需要专业的管理员&#xff0c;而且它也非常节省内存。…

放大镜_指甲钳上有放大镜?再也不怕夹到肉了

扒姬说&#xff1a;剪指甲钳最害怕什么&#xff0c;是没注意夹到肉有没有。尤其是近视的人和手脚不便的老人&#xff0c;或者是给较小的宝宝剪指甲时&#xff0c;总是看不清指甲边缘的形状、刀口的位置&#xff0c;一不小心就会夹到手指、脚趾。今天&#xff0c;扒姬推荐一个特…

linux学习规划

转载于:https://www.cnblogs.com/Alight/p/4601510.html

oracle如何在本地建库,oracle在本地建库

oracle数据库本地建库&#xff0c;需要使用oracle安装路径下面的-配置和移植工具-Database Configuration Assistant 通过一次点击下一步进行建库。 在库建好后&#xff0c;使用系统账号 User:sys password:sys Connect as SYSDBA在客户端进行登录 --创建表空间 Create tablesp…

「BZOJ1485」[HNOI2009] 有趣的数列 (卡特兰数列)

「BZOJ1485」[HNOI2009] 有趣的数列 Description 我们称一个长度为2n的数列是有趣的&#xff0c;当且仅当该数列满足以下三个条件&#xff1a; (1)它是从1到2n共2n个整数的一个排列{ai}&#xff1b; (2)所有的奇数项满足a1<a3<…<a2n-1&#xff0c;所有的偶数项满足a2…