连接mysql数据库

  1. 数据库准备

    1. 如果连接本机数据库,mysql安装及配置可参考https://www.cnblogs.com/feizisy/p/11882521.html
    2. 如果连接阿里云RDS,需要阿里云工作台-数据安全性-白名单内添加外网IP

      白名单设置:

      127.0.0.1 不允许任何IP访问

      0.0.0.0/0 允许任何IP访问
  2. 创建数据库

    1. 本机:

      create database your_database_name
    2. 阿里云:阿里云工作台-数据库管理-创建数据库

  3. yourprojectname/settings.py 配置数据库

    # Database
    # https://docs.djangoproject.com/en/2.2/ref/settings/#databases DATABASES = {
    'default': dict(ENGINE='django.db.backends.mysql',
    HOST='your_host',
    #本机数据库,使用127.0.0.1
    #阿里云数据库,使用阿里云工作台-数据库连接-外网地址
    PORT='3306',
    NAME="your_database_name",
    USER='your_username',
    PASSWORD='your_password')
    }
  4. yourprojectname/init.py 下更改pymysql驱动,原默认为mysqldb(python3不再支持)

    import pymysql
    pymysql.install_as_MySQLdb()
  5. yourappname/models.py 创建数据库表

    from django.db import models
    
    """
    用户表
    """ class User(models.Model):
    username = models.CharField(verbose_name="用户名", max_length=20, unique=True, null=True)
    status = models.CharField(verbose_name="用户状态", max_length=4, null=True,help_text="0:已删除;1:使用中",default=1)
    iphone = models.CharField(verbose_name="手机号", max_length=11, unique=True, null=True)
    email = models.EmailField(verbose_name="邮箱", max_length=20, unique=True)
    signature = models.TextField(verbose_name="签名", max_length=500)
    createtime = models.DateTimeField(verbose_name="创建时间", auto_now=True) def __str__(self):
    return self.realname
  6. 数据库同步,终端执行,中间可能会遇到部分问题,参考https://www.cnblogs.com/feizisy/p/11847996.html

     python manage.py makemigrations
    python manage.py migrate #创建数据库表
  7. 迁移完成,可以在终端执行show tables,或者阿里云官网或navicat客户端查看django自带的一些表和你自己创建的User表

  8. 插入一条数据吧,在你的User表里,命令插入或者后面admin后台页面插入

  9. #如果命令插入的时候遇到更新中文字符,编码问题,三层更改为utf8
    
    alter database hf character set utf8;
    alter table auth_user default character set utf8;
    alter table auth_user change signature signature varchar(500) character set utf8;

models详细的数据操作

from yourappname.models import User
from datetime import datetime # 创建一个用户
>>> User.objects.create(username = "仙女",status = "1", iphone = "18832288888", email = "feizisy@126.com", signature = "今天也要开心哟", createtime = datatime(2019,11,22,20,58)) # 查询User中所有的对象列表
>>> User.objects.all()
<QuerySet [User:仙女]>
# 查询User中符合条件的对象列表
>>> User.objects.filter(username = "仙女")
# 查询符合条件的对象
>>> User.objects.get(id=1)
<User:仙女>
>>> User.objects.get(username__startswith='仙')
<User:仙女>
>>> User.objects.get(username__contains='女')
<User:仙女>
>>> User.objects.get(id=2)
Traceback (most recent call last):
...
DoesNotExist: User matching query does not exist. # 更新数据
>>> r = User.objects.get(id=1)
>>> r.username = "大仙女"
>>> r.save()
# 打印查看
>>> r.username
大仙女 # 删除该条数据
>>> r.delete()

pymysql的补充操作

import pymysql

# 连接数据库
conn = connect{
host = "127.0.0.1"
user = "root"
password = "the password of root"
db = "the name of the database"
charset = "the charset of the database"
cursorclass = cursors.DicCursor
} try:
# 获取数据库操作游标
with conn.cursor() as cursor:
sql = "select * from User where username = '仙女'"
# 执行SQL语句
cursor.execute(sql)
# 提交数据库执行
cursor.commit()
result = cursor.fetchone()
print(result)
finally:
# 关闭连接
conn.close()

配置admin后台

  1. 创建管理员账号

    python manage.py createsuperuser
  2. 运行项目

    python manage.py runserver 127.0.0.1:8001
  3. 可以在yourprojectname/settings.py下更改默认语言

    LANGUAGE_CODE = 'zh-hans'
  4. 访问 http://127.0.0.1:8001/admin/,用上面设置的用户名和密码登录

配置admin菜单视图

  1. yourappname/admin.py 下可定义admin相关菜单视图

    from django.contrib import admin
    from yourappname.models import * # Register your models here. class Useradmin(admin.ModelAdmin):
    list_display = ['id', 'username', 'iphone', 'email', 'signature','status'] #列表
    search_fields = ['username'] #搜索栏 admin.site.register(User, Useradmin) #注册模型
  2. 刷新admin后台登录页面,点击你的user表进入,你可以看到

002-Django数据库及后台admin配置的更多相关文章

  1. Django自带后台admin的使用配置

    Django自带后台使用配置参考官网地址:https://docs.djangoproject.com/en/1.11/ref/contrib/admin/ ,本文章值是介绍简单配置,如果需要详细内容 ...

  2. Django自带后台管理配置

    Django自带后台管理的配置 创建项目和应用 修改配置文件 数据库配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql' ...

  3. Django自带后台使用配置

    参考官网地址:https://docs.djangoproject.com/en/1.11/ref/contrib/admin/ ,本文章值是介绍简单配置,如果需要详细内容可以查阅官方文档 自动管理界 ...

  4. 14.Django自带的admin配置

    admin有自己的默认显示,要自定义显示的样式,一般需要自己定义一个类,在自己定义的类里进行相应的设置,然后,把自己的类交给装饰器 交给装饰器的方法有两种: 1.@admin.register(Pub ...

  5. 关于django访问默认后台admin的时候提示403错误,

    Forbidden (403) CSRF verification failed. Request aborted. You are seeing this message because this ...

  6. django之创建第9个项目-管理后台admin

    django之创建第9个项目-管理后台admin配置 1.配置setting文件INSTALLED_APPS = (    'django.contrib.auth',    'django.cont ...

  7. django+x-admin管理后台模板开发管理后台案例(设计部分)

    使用django+x-admin管理后台模板搭建管理后台 一.环境需求 1.django:3.1 2.python:3.7 3.x-admin:2.2 4.pycharm:2020.3.2 5.ubu ...

  8. django数据库读写分离

    django数据库读写分离 1. 配置数据库 settings.py文件中 用SQLite: DATABASES = { 'default': { 'ENGINE': 'django.db.backe ...

  9. 万里长征第二步——django个人博客(第五步 ——配置后台admin)

    在urls.py文件中配置admin路径 from django.conf.urls import url from django.contrib import admin from blog.vie ...

随机推荐

  1. Linux中关闭SSH的DNS解析

    在操作中,我们都会用SSH协议来远程控制虚拟机,但是在输入用户名时候,会有一段时间的卡顿,此时正在进行SSH协议的DNS解析,我们为了快速的连接到虚拟机上,就要关闭这个解析过程,如下是具体配置: 1. ...

  2. mybatis 的 DefaultVFS 日志乱码问题

    mybatis 的 DefaultVFS 日志乱码问题 mybatis  DefaultVFS 乱码  1. 问题描述 今天在启动同事搭建的工程时,发现 console 中乱码,细看下,是 mybat ...

  3. redis优雅的批量删除key

    redis优雅的批量删除key 近期在处理redis的故障中,发现需要删除大量的历史数据(也是bigkeys),好在符合正则表达式.要不然就很痛苦,这也体现了在设计key的时候遵循规范带来的维护好处之 ...

  4. 【Spring】Spring-Session-Data-Redis实现session共享

    前言 在开发中遇到一个关于用户体验的问题,每次当运维进行更新重启服务器时,都会导致会员平台中已登录的用户掉线.这是因为每个用户的会话信息及状态都是由session来保存的,而session对象是由服务 ...

  5. 【长郡NOIP2014模拟10.22】搞笑的代码

    题目 在OI界存在着一位传奇选手--QQ,他总是以风格迥异的搞笑代码受世人围观 某次某道题目的输入是一个排列,他使用了以下伪代码来生成数据 while 序列长度<n do { 随机生成一个整数属 ...

  6. 伸展树splay之求区间极值

    前言 这篇博客是根据我在打这道题的时候遇到的问题,来打的,有些细节可能考虑不到. 题目 在N(1<=N<=100000)个数A1-An组成的序列上进行M(1<=M<=10000 ...

  7. TF-epoch、 iteration和batchsize区别(转载)

    from http://www.cnblogs.com/qggg/p/6876942.html 转自 http://blog.csdn.net/sinat_30071459/article/detai ...

  8. 【shell】sed处理多行合并

    有这么一个题 文件格式 table=t1 name owner address table=t2 id text col1 comment col5 table=t3 prod_name price ...

  9. Linux系统如何选择MongoDB版本

    mogodb各个版本该怎么选: 如下图所示,我们可以看到有许多版本的安装包,那我们选择下载哪个呢?下面我会讲解一下: 我们发现主要有6种,分别是 : Amazon Linux(亚马逊). Debian ...

  10. Send Email

    private string SendEmail(string mailTo, string body, ref int sendresult) { string errorEmailAddress ...