Django&mysql

2018-11-27  本文已影响0人  山高路远_海深不蓝

Django创建数据库


配置settings.py


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'userinfor',
        'USER': 'root',
        'PASSWORD': 'lztv',
        'HOST': '127.0.0.1',
        'PORT': 3306
    }
}

创建表格

from django.db import models
class user(models.Model):
    account = models.CharField(max_length=64, primary_key=True)
    passwd = models.CharField(max_length=16)

注册


from .models import *
admin.site.register(user)

同步数据库

python manage.py makemigrations

python manage.py migrate

数据库可视化

python manage.py createsuperuser

输入用户名,跳过邮箱,输入密码(两次输入)

浏览器查看

http://127.0.0.1:8000/admin

操作Mysql

models.user.objects.all()

models.user.objects.all().values('account')

models.user.objects.all().values_list('account','password')

models.user.objects.get(account='lz')
models.user.objects.get(password='lztv')

导包管理


models.py

from django.db import models

views.py

# json解析
import json
# 渲染网页
from django.shortcuts import render
# 网页回应
from django.http import HttpResponse
# 导入数据模型
from .models import *
# csrf验证
from django.views.decorators.csrf import csrf_exempt

admin.py

from django.contrib import admin
# 导入数据模型
from .models import *

操作mysql


查询

@csrf_exempt
def select(request):
    if request.method == 'POST':
        select = request.POST.get('select')
        if select == 'all':
            result = Account.objects.all()
            data = {}
            for obj in result:
                account = obj.account
                password = obj.password
                data[account] = password
            return HttpResponse(json.dumps({'code': 200, 'msg': json.dumps(data)}))
        elif select == 'not_all':
            account = request.POST.get('account')
            if len(account) != 0:
                result = Account.objects.filter(account=account).first()
                if result is not None:
                    password = result.password
                    data = {account:password}
                    return HttpResponse(json.dumps({'code': 200, 'msg': json.dumps(data)}))
                else:
                    return HttpResponse(json.dumps({'code': 400, 'msg': '未查询到此用户!'}))
            else:
                return HttpResponse(json.dumps({'code': 400, 'msg': '账户名不能为空!'}))

添加

@csrf_exempt
def add_data(request):
    if request.method == 'POST':
        account = request.POST.get('account')
        if Account.objects.filter(account=account).count() == 0:
            password = request.POST.get('password')
            Account.objects.create(account=account, password=password)
            return HttpResponse(json.dumps({'code': 200, 'msg': '添加成功!'}))
        else:
            return HttpResponse(json.dumps({'code': 400, 'msg': '此用户已存在!'}))

更新

@csrf_exempt
def update_infor(request):
    if request.method == 'POST':
        account = request.POST.get('account')
        obj = Account.objects.filter(account=account)
        if obj is not None:
            obj.update(password='admin')
            return HttpResponse(json.dumps({'code': 200, 'msg': '密码重置为admin'}))
        else:
            return HttpResponse(json.dumps({'code': 400, 'msg': '重置失败!'}))

删除

@csrf_exempt
def delect_infor(request):
    if request.method == 'POST':
        account = request.POST.get('account')
        obj = Account.objects.get(account=account)
        if obj is not None:
            obj.delete()
            return HttpResponse(json.dumps({'code': 200, 'msg': '删除信息成功!'}))
        else:
            return HttpResponse(json.dumps({'code': 400, 'msg': '删除失败!'}))

修改models

增加字段只需重新初始化,以下针对修改表结构

如果已存在的数据无意义且数据量不大,删除数据库,重建

不删除数据库,打开相应的数据库,删除app的相关信息

上一篇 下一篇

猜你喜欢

热点阅读