Django 2.0 入门与实践---- 第14章 笔记 (二)--使用Mysql

Django 2.0 入门与实践---- 第14章 笔记 (二)

http://www.liujiangblog.com/course/django/165
使用MySQL数据库

page151

ubuntu 16.04.05

mysite/ wsgi . py : 兼容WSGI 的Web 服务人口。Django 应用程序是基于WSGI 服务开
发的,因此运行或部署Djan go 程序时需要指定WSGI 配置信息,在后面章节会介绍
如何使用WSGI 部署Django 应用程序。

django-admin startproject mysite
cd mysite/
python manage.py runserver

http://127.0.0.1:8000/

python manage.py startapp polls

vi polls/views.py

from django.shortcuts import render

# Create your views here.

from django.http import HttpResponse

def index(request):
    return HttpResponse("你好! 这里是在线投票系统.")
    
    

新建polls/urls.py 文件
vi polls/urls.py
内容:

#coding:UTF-8

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index ,name='index'),
]

修改
vi mysite/urls.py

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

vi mysite/settings.py

ALLOWED_HOSTS = [’*’]
在这里插入图片描述

python manage.py runserver 192.168.99.218:8080

http://192.168.99.218:8080/polls/

Django 官方提供了对4 种数据库的支持: PostgreSQL 、MySQL 、Oracle 和SQLite 。本书全
部内容均以MySQL 数据库为例。

page157

提前创建好一个空的数据库:

mysql -u root -p

create user ‘cat’@’%’ identified by ‘123456’;
create database cat_db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all privileges on cat_db.* to cat@’%’ ;
flush privileges;

参考1:

一、新建用户
只允许本地访问 localhost, 127.0.0.1
create user ‘cat’@‘localhost’ identified by ‘123456’;
允许外网 IP 访问
create user ‘cat’@’%’ identified by ‘123456’;
二、创建数据库
create database cat_db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
三、给新用户分配数据库权限
授予外网IP对数据库的所有权限 注意: 看清单引号还是反引号
– 如下两种写法在mysql 5.7.21 下都是可以的
grant all privileges on cat_db.* to ‘cat’@’%’ ;
grant all privileges on cat_db.* to cat@’%’ ;
– 下面 cat_db 用的是反引号而不是单引号
grant all privileges on cat_db.* to ‘cat’@’%’ ;
注意 以下是错误写法
– 注意:以下的写法(全部单引号)全部不行 不行 不行
grant all privileges on ‘cat_db’.* to ‘cat’@’%’ ;
grant privileges on ‘cat_db’.* to ‘cat’@’%’ ;
grant privileges on cat_db.* to ‘cat’@’%’ ;
grant privileges on cat_db.* to cat@’%’ ;
四、刷新权限
flush privileges;
完成以上操作就可以登陆新的用户了

参考:
MySQL: Grant all privileges on database

参考2

其他一些常用命令
1 列出所有的数据库

show databases;

2 切换数据库

ues 数据库的名字;

3 列出所有的表

show tables;

4 显示数据表结构

desc 表名;

5 删除数据库

drop databases 数据库名

6 删除数据表

drop table 数据表

7 查看mysql版本

select version();

8 查看当前的时间

select now();

9 查看当前登录的用户名

select user();

10 查看数据库的编码方式

show create database 数据库名;

11 查看错误信息

show warnings;

12 创建一个gbk格式的数据库

create database if not exists 数据库名 character set gbk;

13 修改数据库的编码方式

alter database 数据库名 character set=utf8;

14 直接查看某个库有多少张表

show tables from 数据库名;

15 直接查看当前处于哪个数据库

select database();

16 查看表的结构

show columns from 表名;

17 添加一列到某个字段的后面

alter table 表名 add 将要添加的字段 varchar(10) after 某个字段

18 添加一列到第一列

alter table 表名 add 添加的字段名 varchar(10) first

19 删除多列

alter table 表名 drop xxx,drop xxx;

20 增加一个主键列

alter table表名 add constraint 列名 primary key (id)

21 增加唯一约束列

alter table 表名 add unique (列名)

22 设置客户端的编码方式

set names gbk;

23 删除主键约束

alter table 表名 drop primary key;

24 删除唯一约束,不删除字段

alter table 表名 drop index 列名

25 查看外键约束索引

show indexes from 表名\G

mysql -u root -p

参考3:

遇到问题:按照MySQL5.6版本之前的语句对MySQL5.7版本执行创建数据库、添加用户并对用户授权操作后,该授权用户只能连接到数据库,但是执行不了任何操作,更是创建不了数据表。

解决问题:通过测试,发现在MySQL5.7版本中,要授权用户对所有数据库有SUPER权限,否则该授权用户只能连接数据库并不能执行任何操作。

数据库名称:mydb

数据库用户名:mydbuser

数据库密码:123456

Create DATABASE IF NOT EXISTS mydb default charset utf8 COLLATE utf8_general_ci; #创建数据库

#MySQL5.7版本建议先创建用户,再给用户进行授权操作。

CREATE USER ‘mydbuser’@‘localhost’ IDENTIFIED BY ‘123456’; #创建用户

CREATE USER ‘mydbuser’@‘127.0.0.1’ IDENTIFIED BY ‘123456’;

GRANT ALL PRIVILEGES ON mydb.* TO mydbuser@‘localhost’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION; #授权用户

GRANT ALL PRIVILEGES ON mydb.* TO mydbuser@‘127.0.0.1’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION; #授权用户

#MySQL5.7版本要授权用户对所有数据库有SUPER权限,否则上一步对用户的授权只能连接但无任何操作权限。

grant SUPER on . to ‘mydbuser’@‘localhost’ ; #授予用户对所有数据库有SUPER权限,否则只能连接无任何操作权限。

grant SUPER on . to ‘mydbuser’@‘127.0.0.1’ ;

flush privileges; #刷新系统授权表

至此,MySQL5.7版本下创建数据库添加用户并对用户进行授权完成。

备注:

import pymysql         # 一定要添加这两行!           
pymysql.install_as_MySQLdb()
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',   # 数据库引擎
        'NAME': 'mysite',  # 数据库名,先前创建的
        'USER': 'root',     # 用户名,可以自己创建用户
        'PASSWORD': '****',  # 密码
        'HOST': '192.168.1.121',  # mysql服务所在的主机ip
        'PORT': '3306',         # mysql服务端口
    }
}
django 使用 mysql 数据库

mysql -u cat -p

show databases;
在这里插入图片描述
use cat_db;
在这里插入图片描述

show tables;
在这里插入图片描述

desc polls_question;
在这里插入图片描述

show tables;
在这里插入图片描述

select * from polls_question;

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

page164

代码:
https://download.csdn.net/download/wowocpp/11835365

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值