Ubuntu 中 Redis ,MySQL 基本使用

news/2024/12/22 20:19:46/

1、Redis

(1)启动Redis 服务端客户端命令

服务端

ps aux | grep redis 查看redis服务器进程
sudo kill -9 pid 杀死redis服务器
sudo redis-server /etc/redis/redis.conf 指定加载的配置文件

在这里插入图片描述

客户端

连接redisredis-cli运⾏测试命令:
ping切换数据库
数据库没有名称,默认有16个,通过0-15来标识,连接redis默认选择第一个数据库
select 10

(2)基本操作

redis命令参考文档链接: link
http://doc.redisfans.com/

(3)与 python 交互

pip install redisfrom redis import StrictRedisif __name__=='__main__':try:sr = StrictRedis()# res = sr.set('name','itheima')# print(res)res=sr.set('name','itcast')print(res)res = sr.get('name')print(res)except Exception as e:print(e)
~                    

在这里插入图片描述

2、MySQL

(1)打开数据库

mysql -uroot -p

(2)基本命令

show databases;
create database bj18 charset=utf8;
use bj18;
show tables;

(3)Django中MySQL数据库的配置

django-admin startproject name
python manage.py startapp appname
pip install pymysql

projectname/__ init __.py:

import pymysql
pymysql.install_as_MySQLdb()

settings.py:

DATABASES = {'default': {# 'ENGINE':'django.db.backends.sqlite3',"ENGINE":'django.db.backends.mysql',# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),"NAME":'bj18',  # 使用的数据库的名字,必须手动创建"USER":'root',  # 链接mysql的用户名"PASSWORD":'mySQL',  # 用户对应的密码"HOST":'localhost',  # 指定mysql数据库所在电脑ip"PORT":3306,  # 端口号}
}

myapp/models.py

from django.db import models# Create your models here.
class BookInfo(models.Model):btitle = models.CharField(max_length=20)bpub_date = models.DateField()bread = models.IntegerField(default=0)bcomment = models.IntegerField(default=0)isDelete = models.BooleanField(default=False)class HeroInfo(models.Model):hname = models.CharField(max_length=20)hgender =models.BooleanField(default=False)hcomment =models.CharField(max_length=200)hbook = models.ForeignKey('BookInfo')isDelete = models.BooleanField(default=False)
python manage.py makemigrations
python manage.py migrate

与 MySQL 进行交互

show tables
desc booktest_bookinfo;
insert into booktest_bookinfo(btitle, bpub_date, bread, bcomment, isDelete) values
('射雕英雄传', '1980-5-1', 32, 34, 0),
('天龙八部', '1986-7-24', 36, 40, 0),
('笑傲江湖', '1995-12-24', 20, 80, 0),
('雪山飞狐', '1987-11-11', 58, 24, 0);insert into booktest_heroinfo(hname, hgender, hbook_id, hcomment, isDelete) values
('郭靖', 1, 1, '降龙十八掌', 0),
('黄蓉', 0, 1, '打狗棍法', 0),
('黄药师', 1, 1, '弹指神通', 0),
('欧阳锋', 1, 1, '蛤蟆功', 0),
('梅超风', 0, 1, '九阴白骨爪', 0),
('乔峰', 1, 2, '降龙十八掌', 0),
('段誉', 1, 2, '六脉神剑', 0),
('虚竹', 1, 2, '天山六阳掌', 0),
('王语嫣', 0, 2, '神仙姐姐', 0),
('令狐冲', 1, 3, '独孤九剑', 0),
('任盈盈', 0, 3, '弹琴', 0),
('岳不群', 1, 3, '华山剑法', 0),
('东方不败', 0, 3, '葵花宝典', 0),
('胡斐', 1, 4, '胡家刀法', 0),
('苗若兰', 1, 4, '黄衣', 0),
('程灵素', 0, 4, '医术', 0),
('袁紫衣', 0, 4, '六合拳', 0);
select * from booktest_bookinfo;
select * from booktest_heroinfo;

案例——续上

创建模板文件夹

templates/appname/index.html
配settings.py templates部分

'DIRS': [os.path.join(BASE_DIR,'templates')],
创建视图函数,连接 models 和 templates (MVT)
from django.shortcuts import render
from booktest.models import BookInfo
# Create your views here.
def index(request):books = BookInfo.objects.all()return render(request,'booktest/index.html',{'books':books})
配置url

projectname / url.py

urlpatterns = [url(r'^admin/', include(admin.site.urls)),url(r"^",include('booktest.urls')),
]

appname / urls.py

from django.conf.urls import url
from booktest import viewsurlpatterns = [url(r'^index$',views.url),
]
完善模板文件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>图书管理首页</title>
</head>
<body>
<a href="/create">新增</a>
<ul>{%  for book in books %}<li>{{ book.btitle }}</li>{%  endfor  %}
</ul></body>
</html>
完成首页超链接“新增”功能

appname / views.py

from django.http import HttpResponseRedirect
from datetime import date
def create(request):b = BookInfo()b.btitle = '流星蝴蝶剑'b.bpub_date = date(1990,1,1)b.save()# return HttpResponse('ok')return HttpResponseRedirect('index')

appname / urls.py

urlpatterns = [url(r'^index$',views.index),url(r'^create$',views.create),
]

ps :HttpResponseRedirect重定向体现在:
在这里插入图片描述

完成首页超链接删除功能

完善 index.html

<li>{{ book.btitle }}--<a href="/delete{{ book.id }}">删除</a></li>

完成 views.delete 函数

def delete(request,bid):book = BookInfo.objects.get(id=bid)book.delete()return HttpResponseRedirect('/index')

完成 url 配置 appname / urls.py

urlpatterns = [url(r'^index$',views.index),url(r'^create$',views.create),url(r'^delete(\d+)',views.delete),
]

HttpResponseRedirect 相当于 redirect (from django import)

注意 url 配置时 / 的作用

在编辑 HTML 文件时

<a href='/create'>新增 </a>

/ 的作用是代替域名 如 127.0.0.1:8000/
正确的地址是 127.0.0.1:8000/create
如果没有 / 将是在原本的页面地址上拼接 create
如:当此时位于首页(127.0.0.1:8000/index)
点击新增,匹配的 url 将会是 127.0.0.1:8000/index/create


http://www.ppmy.cn/news/1536136.html

相关文章

数据结构--堆的深度解析

目录 引言 一、基本概念 1.1堆的概念 1.2堆的存储结构 1.3堆的特点 二、 堆的基本操作 2.1初始化 2.2创建堆 2.3插入元素 2.4删除元素 2.5堆化操作 2.6堆的判空 2.7获取堆顶元素 三、堆的常见应用 1. 优先队列 2. 堆排序 3. Top-k 问题 4. 图论中的应用 四…

【实战教程】SpringBoot全面指南:快速上手到项目实战(SpringBoot)

文章目录 【实战教程】SpringBoot全面指南&#xff1a;快速上手到项目实战(SpringBoot)1. SpringBoot介绍1.1 SpringBoot简介1.2系统要求1.3 SpringBoot和SpringMVC区别1.4 SpringBoot和SpringCloud区别 2.快速入门3. Web开发3.1 静态资源访问3.2 渲染Web页面3.3 YML与Properti…

【包教包会】速通LLM《从头开始构建大型语言模型》免费pdf分享

介绍 在当今人工智能技术飞速发展的时代&#xff0c;大型语言模型&#xff08;LLM&#xff09;作为聊天机器人、文本生成和理解等应用的核心&#xff0c;已经成为研究和商业领域的关注焦点。尽管这些模型的应用无处不在&#xff0c;但对于大多数开发者来说&#xff0c;它们的工…

微信小程序:一个小程序跳转至另一个小程序

一、微信小程序支持一个小程序跳转至另一个小程序吗&#xff1f; 支持。 1.1、目标小程序需开放被跳转&#xff1a;目标小程序需要在其 app.json 文件中配置 navigateToMiniProgramAppIdList&#xff0c;将源小程序的 AppID 加入其中。 1.2、用户授权&#xff1a;用户需要授…

使用 Spring Boot 在电商平台中动态调整促销信息

业务背景 在电商平台上&#xff0c;促销活动是吸引用户的重要手段之一。然而&#xff0c;促销活动的状态&#xff08;如开始、结束&#xff09;可能会频繁变化&#xff0c;而这些变化需要实时反映在商品详情页上。如果每次促销状态改变都需要重新部署应用或者手动更改代码&…

20241004给荣品RD-RK3588-AHD开发板刷Rockchip原厂的Android12【HDMI0显示】

20241004给荣品RD-RK3588-AHD开发板刷Rockchip原厂的Android12【HDMI0显示】 2024/10/4 19:40 1、配置RK3588S的默认DTS为&#xff1a;rk3588s-evb4-lp4x-v10.dts D:\Android\rk3588s4_3588a12\device\rockchip\rk3588\rk3588s_s\BoardConfig.mk Z:\rk3588s4_3588a12\device\ro…

海陆钻井自动化作业机器人比例阀放大器

海陆钻井自动化作业机器人是现代海洋石油勘探与钻井领域的关键装备&#xff0c;它通过自动化和无人化技术显著提高了钻井效率和安全性。海陆钻井自动化作业机器人主要用于在海上和陆地的钻井平台上进行自动化、无人化的一体化作业。这种设备能够自动切换钻杆&#xff0c;极大地…

毕业设计项目 深度学习语义分割实现弹幕防遮(源码分享)

文章目录 0 简介1 课题背景2 技术原理和方法2.1基本原理2.2 技术选型和方法 3 实例分割4 实现效果最后 0 简介 今天学长向大家分享一个毕业设计项目 毕业设计 深度学习语义分割实现弹幕防遮(源码分享) &#x1f9ff; 项目分享:见文末! 1 课题背景 弹幕是显示在视频上的评论…