Python【算法中心 02】Web框架Django管理页面使用(管理员账号创建+API使用+应用添加)GreenPlum数据库引擎及API测试

简介: Python【算法中心 02】Web框架Django管理页面使用(管理员账号创建+API使用+应用添加)GreenPlum数据库引擎及API测试

1.SQLite管理员账号创建

SQLite 是 Django 默认的数据库体量上类似与 Apache Derby,配置信息如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

makemigrations 为模型的改变生成迁移文件,migrate 实现应用数据库迁移,切换数据库或者添加新的module后要执行以上命令:

python .\manage.py migrate

否则创建管理员账号时会报错no such table: auth_user当然,未创建admin账号就登录同样报这个错:

OperationalError at /admin/login/
no such table: auth_user
# 创建管理员账号 admin
python .\manage.py createsuperuser
# 输入管理员账号名称
Username (leave blank to use 'administrator'): admin_test
# 输入Email地址
Email address: admin_test@example.com
# 输入密码
Password:
Password (again):
The password is too similar to the username.
Bypass password validation and create user anyway? [y/N]: y
# 创建成功
Superuser created successfully.

页面登录http://host:port/admin/输入账号名称和密码登录:

2.GreenPlum管理页面使用

2.1 数据库配置及初始化

Django 支持许多不同的数据库服务器,官方支持 PostgreSQL、MariaDB、MySQL、Oracle 和 SQLite。其他 DataBase Bindings 信息可以查看官网,这里仅以 PostgreSQL 的孪生兄弟 GreenPlum 数据库举例,也算是测试对 GP 数据库的支持情况。ENGINE用的也是postgresql的,其他信息如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'algorithmcenter',
        'USER': 'xxxx',
        'PASSWORD': 'xxxx',
        'HOST': 'hostname',
        'PORT': '5432',
    }
}

使用 PostgreSQL,需要 psycopg2 包,使用 GreenPlum 同样是需要的,安装 psycopg2-binary 命令如下:

# 安装命令
pip3 install psycopg2-binary
# 安装过程
Collecting psycopg2-binary
  Downloading psycopg2_binary-2.9.3-cp38-cp38-win_amd64.whl (1.1 MB)
     |████████████████████████████████| 1.1 MB 21 kB/s
Installing collected packages: psycopg2-binary
Successfully installed psycopg2-binary-2.9.3

migrate时报错:

django.db.utils.IntegrityError: 
UNIQUE index must contain all columns in the distribution key of relation "django_content_type"

由于GP数据库跟PG数据库还是存在一些语法不一致的地方,这里将SQLite里的10张表同步到GP并创建auth_userid字段的自增序列:

CREATE SEQUENCE greenplum_sequence START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1;
ALTER TABLE auth_user ALTER COLUMN ID 
SET DEFAULT nextval( 'greenplum_sequence' );

修改django_session表的expire_date字段格式由text 改为 timestamp否则登录时报错。

2.2 管理员账号创建

# 账户创建
python .\manage.py createsuperuser
Username (leave blank to use 'administrator'): test
Email address: test@qq.com
Password:
Password (again):
The password is too similar to the username.
This password is too short. It must contain at least 8 characters.
This password is too common.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

登录成功页面不再贴出。

2.3 Django数据库API使用

简单测试,更多API查看 官网

from xxxx.models import Choice, Question
Question.objects.all()
from django.utils import timezone
q = Question(question_text="What's new?", pub_date=timezone.now())
q.save()
q.id
q.question_text
q.pub_date
q.question_text = "What's up?"
q.save()
Question.objects.all()

2.4 应用添加

在应用文件夹下的admin.py文件内添加注册代码:

# Register your models here.
from .models import Question
admin.site.register(Question)

新增数据:

修改数据:

3.总结

Django 对 GreenPlum 数据库的支持不好,几乎不可用,可以非官方支持的数据库可放弃使用其数据库 API。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
6月前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
6月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
723 7
|
7月前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
321 26
|
6月前
|
存储 监控 算法
监控电脑屏幕的帧数据检索 Python 语言算法
针对监控电脑屏幕场景,本文提出基于哈希表的帧数据高效检索方案。利用时间戳作键,实现O(1)级查询与去重,结合链式地址法支持多条件检索,并通过Python实现插入、查询、删除操作。测试表明,相较传统列表,检索速度提升80%以上,存储减少15%,具备高实时性与可扩展性,适用于大规模屏幕监控系统。
197 5
|
6月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
7月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
7月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
575 0
|
7月前
|
存储 弹性计算 安全
现有数据库系统中应用加密技术的不同之处
本文介绍了数据库加密技术的种类及其在不同应用场景下的安全防护能力,包括云盘加密、透明数据加密(TDE)和选择列加密。分析了数据库面临的安全威胁,如管理员攻击、网络监听、绕过数据库访问等,并通过能力矩阵对比了各类加密技术的安全防护范围、加密粒度、业务影响及性能损耗。帮助用户根据安全需求、业务改造成本和性能要求,选择合适的加密方案,保障数据存储与传输安全。
|
7月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
【机器人路径规划】基于D*算法的机器人路径规划(Python代码实现)
340 0
|
6月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
529 4

热门文章

最新文章

推荐镜像

更多