博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【技术博客】MySQL和Django常用操作
阅读量:6244 次
发布时间:2019-06-22

本文共 5364 字,大约阅读时间需要 17 分钟。

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;//以某几列为顺序展示tableSELECT * FROM table_name ORDER BY column1_name DESC,column2_name;//以某几列为倒序展示tableSELECT 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.pyfrom django.http import HttpResponsedef xxx(request):    return HttpResponse("xxxx")//编辑根urls.pyfrom django.urls import include//添加path('xxx/', include('xxx.urls'))//新建应用的urls.pyfrom django.urls import pathfrom . import viewsurlpatterns = [    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.pyDATABASES = {    'default': {        'ENGINE': 'django.db.backends.mysql',        'NAME': 'database_name',        'HOST': 'localhost',        'PORT': '3306',        'USER': 'root',        'PASSWORD': 'xxx',    }}//迁移数据,在cmd中执行python manage.py makemigrationspython manage.py migrate//修改项目__init__.pyimport pymysqlpymysql.install_as_MySQLdb()

Django中操纵MySQL

//编辑views.pyfrom . import modelsmodels.Article.objects.create(title=title) # 插入方法一cur_ticket = models.ticket(title=title)cur_ticket.save() # 插入方法二,此方法可以获得自增主键cur_ticket.idarticle = 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.pyfrom . import modelsadmin.site.register(models.Article)访问localhost:8000/admin
  • 删除数据库

    migrations文件夹只留__init__.py//删除mysql里的database,创建空database:drop database xxx;create database xxx;//在django中重新迁移数据python manage.py makemigrationspython manage.py migrate

转载于:https://www.cnblogs.com/stupidRJGC/p/10843910.html

你可能感兴趣的文章
CakePHP 2.x CookBook 中文版 第七章 模型 之 保存数据(二)
查看>>
第8章 三路由不同网段互通实验(中级篇)
查看>>
【啊哈!算法】最快最简单的排序——桶排序
查看>>
运城数据恢复注册了一个网站
查看>>
shell脚本菜
查看>>
ubuntu jdk安装配置
查看>>
分布式系统若干经验总结
查看>>
使用JSONP解决跨域问题-代码示例
查看>>
golang Tag
查看>>
云端时代桌面云架构介绍(CTVI)
查看>>
iptables之实例
查看>>
第三周作业
查看>>
VTDecoderXPCService意外退出
查看>>
js 数字验证
查看>>
在repeater中实现radiobutton单选
查看>>
使用Ora2Pg工具把数据从Oracle导入到PostgreSQL
查看>>
条件注释判断浏览器
查看>>
页面自动刷新代码大全
查看>>
【java基础】压缩图片上传
查看>>
Kotlin代码检查在美团的探索与实践
查看>>