django mysql 博客_【技术博客】MySQL和Django常用操作

MySQL和Django是搭建网站常用的配置之一,在此记录一下在Windows系统搭建网站时MySQL以及Django常用的操作。

MySQL

MySQL的SQL语句不区分大小写,推荐将保留字大写,数据库名、表名、字段名等小写。

每条SQL语句必须以';'结尾,MySQL支持多行输入,直到识别到';'开始执行。

MySQL中table第一行行号为0。

系统操作

启动服务 net start mysql

安装后MySQL只需启动一次即可

登录

在cmd中执行 mysql -u root -p

用户相关操作 select host,user,authentication_string from mysql.user;//查询所有用户

create user "username"@"host" identified by "password";//新建用户

databases相关操作

显示所有数据库 SHOW databases;

创建数据库 CREATE database xxx;

删除数据库 DROP database xxx;

选择数据库,进入tables层级 USE xxx;

tables相关操作

显示所有table SHOW tables;

新建table CREATE TABLE table_name(column1_name int NOT NULL AUTO_INCREMENT, column2_name char(50) NULL DEFAULT 1, PRIMARY KEY(column1_name))ENGINE=InnoDB;

每个字段可以选择类型、是否可以为空、自增、默认值、是否为主键等。表格可以选择引擎。

显示table数据 SELECT * FROM table_name;//显示一个table内所有数据

SELECT column1_name, column2_name FROM table_name;//显示某几列

SELECT * FROM table_name ORDER BY column1_name, column2_name;//以某几列为顺序展示table

SELECT * FROM table_name ORDER BY column1_name DESC,column2_name;//以某几列为倒序展示table

SELECT DISTINCT column1_name FROM table_name;//对某列去重后输出

SELECT * FROM table_name (ORDER BY column1_name) LIMIT a, b;//排序后展示第a+1行开始的b行

SELECCT * FROM table_name WHERE column1_name=a AND (column2_name<=3 OR column3_name IN (3,4,5));//查找第一列为a,第二列小于等于3或第三列为3或4或5的词

SELECT column1_name FROM table_name WHERE column1_name LIKE 'xyz%';//某列中以xyz开头词

SELECT column1_name FROM table_name WHERE column1_name LIKE 'xyz_';//某列中以xyz开头+1个字符的词

SELECT column1_name FROM table_name WHERE column1_name REGEXP '.000';//REGEXP后加正则

计算字段 SELECT Concnt(column1_name, '(', column2_name, ')') FROM table_name ORDER BY column1_name;//拼接a(b)的形式

SELECT Concnt(column1_name, '(', RTrim(column2_name), ')') FROM table_name ORDER BY column1_name;//删除最右边所有空格,LTrim()删除最左边所有空格

SELECT Concnt(column1_name, '(', Upper(column2_name), ')') FROM table_name ORDER BY column1_name;//全部大写

数据汇总 SELECT AVG(column1_name) FROM table_name AS name;//获取一列平均值

SELECT COUNT(*) FORM table_name;//统计行数

SELECT AVG(column1_name) AS name1, MIN(column2_name) AS name2 FROM table_name;//最小值

连接表 SELECT column1_name, column2_name, column3_name FROM table1_name, table2_name WHERE table1_name.column1_name = table2_name.column1_name';

更新 INSERT INTO table_name[(column1_name, column2_name…… )] VALUES(1,2……),(3,4……);

INSERT INTO table_name(column1_name, column2_name……) SELECT column3_name, column4_name…… FROM table2_name;//插入行

ALTER TABLE table_name ADD column1_name int;//增加列

ALTER TABLE table_name DROP COLUMN column1_name;//删除列

UPDATE table_name SET column1_name=word, column2_name=word WHERE column3_name=word;//更新数据

DELETE FROM table_name WHRER column1_name = word;//删除行

TRUNCATE table_name;//清空

索引和视图 CREATE [UNIQUE][CLUSTER] INDEX index_name ON talbe_name(column1_name ASC, column2_name DESC);//创建索引

DROP INDEX index_name;//删除索引

CREATE VIEW view_name AS SELECT * FROM table_name WHERE what;//创建视图

DROP VIEW view_name;//删除视图

Django

Django是基于Python的高级Web开发框架,支持python2.7及以上。一般使用Django2.0以上。

Django采用MTV模式,即models、templetes、views,分别控制模型(即数据库),模板(即前端),视图(即后端逻辑)。

创建项目和应用

创建项目 django-admin startproject xxx

项目文件:

manage.py:项目管理器

wsgi.py:服务器网关接口

urls.py:URL配置文件

settings.py:总配置文件,可更换数据库

__init__.py:声明模块

创建应用 python manage.py startapp xxx

//在settings.py中的INSTALLED_APPS添加应用xxx

应用文件:

migrations:数据迁移模块

admin.py:后台管理系统配置文件

apps.py:当前应用配置

models.py:数据模块

test.py:自动化测试模块

views.py:执行响应的逻辑代码

创建响应

//编辑views.py

from django.http import HttpResponse

def xxx(request):

return HttpResponse("xxxx")

//编辑根urls.py

from django.urls import include

//添加path('xxx/', include('xxx.urls'))

//新建应用的urls.py

from django.urls import path

from . import views

urlpatterns = [

path('xxx/', views.xxx)

]

编辑模板

//在app下创建templates文件夹,其下创建app名文件夹

//在内层文件夹下创建xxx.html

//在views.py中创建渲染函数

def xxx(request):

return render(request, 'xxx.html', {'key':'value'})

//其中value可在html中用{{key}}方式显示,传递该字典类型的DTL到前端

连接MySQL

//在MySQL中建立database,推荐database名和项目名相同

//修改settings.py

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'database_name',

'HOST': 'localhost',

'PORT': '3306',

'USER': 'root',

'PASSWORD': 'xxx',

}

}

//迁移数据,在cmd中执行

python manage.py makemigrations

python manage.py migrate

//修改项目__init__.py

import pymysql

pymysql.install_as_MySQLdb()

Django中操纵MySQL

//编辑views.py

from . import models

models.Article.objects.create(title=title) # 插入方法一

cur_ticket = models.ticket(title=title)

cur_ticket.save() # 插入方法二,此方法可以获得自增主键cur_ticket.id

article = models.Article.objects.get(title='') # 查询一个,在找不到或找到一个以上时会报错,可用try except判断

article = models.Article.objects.get(~Q(title=''))# 不等于

articles = models.Article.objects.filter(title='')# 查询多个,返回一个列表,通过[]取到

articles = models.Article.objects.filter(title__in='')# 查询结果为多个,且查询条件为列表

article = models.Article.objects.get(pk='') # 根据主码查询

articles = models.Article.objects.all() # 查询所有

models.Article.objects.filter(title='').update(content='a') # 更新

models.Article.objects.get(title='').delete() # 删除

models.Article.objects.all().delete() # 删除所有

常用指令

启动项目 python manage.py runserver [xxxx]端口可选,缺省默认8000

增加admin管理员 python manage.py createsuperuser

//修改settings.py中LANGUAGE_CODE='zh_Hans'

//修改admin.py

from . import models

admin.site.register(models.Article)

访问localhost:8000/admin

删除数据库 migrations文件夹只留__init__.py

//删除mysql里的database,创建空database:

drop database xxx;

create database xxx;

//在django中重新迁移数据

python manage.py makemigrations

python manage.py migrate

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值