您的位置 首页 IC

解析Dragonboard 410c搭载web服务器之数据库的规划

一.前言在经过上篇《Dragonboard410c 服务器系列六之用户交互系统》的学习,博主相信大家都能大致掌握Django框架基础的web服务器搭建以及简单的数据交

一.前语

在通过上篇《Dragonboard410c 服务器系列六之用户交互体系》的学习,博主信任咱们都能大致把握Django结构根底的web服务器建立以及简略的数据交互。可是,往深处想,Django是怎么存储不同页面的交互数据的?信任有看过博主之前上传的代码的童鞋都现已知晓,这也是咱们今日要评论的主题:数据库。

二.数据库

1.概念:

数据库(Database)是依照数据结构来安排、存储和办理数据的建立在计算机存储设备上的库房。简略来说是自身可视为电子化的文件柜——存储电子文件的场所,用户能够对文件中的数据进行新增、截取、更新、删去等操作。在经济办理的日常工作中,常常需求把某些相关的数据放进这样的“库房”,并依据办理的需求进行相应的处理。能够说数据库的规划是web后台架构规划的重中之重,合理的数据库规划将会为后台节约很多的运算过程和进步全体的运转功率,这也是衡量一个后台工程师功底的重要规范。

2.Django的数据库:

2.1.介绍:

Django的数据库,咱们称之为模型,与数据库相关的代码一般写在 models.py 中,Django 支撑 sqlite3, MySQL, PostgreSQL等数据库,只需求在setTIngs.py中装备即可,不必更改models.py中的代码,丰厚的API极大的方便了运用。当然,咱们也能够依据自己的需求去自界说filed,也便是自己的模型。比方上篇的用户交互体系,咱们就不只承继的原有MyUser,还自界说了音讯的模型:online_message以及体系的状况模型:online_SystemStatus.

2.2 创立过程:

2.2.1.创立django项目:

django-admin startproject test

2.2.2.创立webapp:

cd test

django-admin startapp sql

2.2.3.增加webapp进test项目:

vim test/test/setTIngs.py

INSTALLED_APPS = (

‘django.contrib.admin’,

‘django.contrib.auth’,

‘django.contrib.contenttypes’,

‘django.contrib.sessions’,

‘django.contrib.messages’,

‘django.contrib.staTIcfiles’,

‘sql’,

)

2.2.4.界说sql的数据模型:

from django.db import models

class Person(models.Model):

name = models.CharField(max_length=30)

age = models.IntegerField()

2.2.5.初始化数据库数据:

cd ~/test

python manage.py makemigraTIons sql

python manage.py migrate

3.实例模型代码:

#coding:utf8

from django.db import models

from django.contrib.auth.models import (

BaseUserManager, AbstractBaseUser, PermissionsMixin)

class MyUserManager(BaseUserManager):

# def _create_user(self, username, email, password, **extra_fields):

def _create_user(self, username, password, **extra_fields):

Creates and saves a User with the given username, email and password.

if not username:

raise ValueError(‘The given username must be set’)

# email = self.normalize_email(email)

# user = self.model(username=username, email=email, **extra_fields)

user = self.model(username=username, **extra_fields)

user.set_password(password)

user.save(using=self._db)

return user

# def create_user(self, username, email, password, **extra_fields):

def create_user(self, username, password, **extra_fields):

extra_fields.setdefault(‘is_staff’, False)

extra_fields.setdefault(’email’,)

extra_fields.setdefault(‘phone’,)

extra_fields.setdefault(‘haarValue’,)

extra_fields.setdefault(‘avatarImg’,)

# extra_fields.setdefault(‘text’,)

# extra_fields.setdefault(‘video’,)

# extra_fields.setdefault(‘time’,)

return self._create_user(username, password, **extra_fields)

# return self._create_user(username, email, password, **extra_fields)

# def create_superuser(self, username, email, password, **extra_fields):

def create_superuser(self, username, password, **extra_fields):

extra_fields.setdefault(‘is_staff’, True)

if extra_fields.get(‘is_staff’) is not True:

raise ValueError(‘Superuser must have is_staff=True’)

#拓宽user数据 by xiao

#get

#to

#message_flag

#text

#video

#time

# extra_fields.setdefault(‘got’,username)

# extra_fields.setdefault(‘to’,username)

# extra_fields.setdefault(‘message_flag’,1)

# extra_fields.setdefault(‘text’,)

# extra_fields.setdefault(‘video’,)

# extra_fields.setdefault(‘time’,)

return self._create_user(username, password, **extra_fields)

# return self._create_user(username, email, password, **extra_fields)

class MyUser(AbstractBaseUser, PermissionsMixin):

username = models.CharField(max_length=254, unique=True, db_index=True)

email = models.CharField(max_length=254)

phone = models.CharField(max_length=254)

haarValue = models.CharField(max_length=254)

avatarImg = models.CharField(max_length=254)

#email = models.EmailField(’email address’, max_length=254)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/147725.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部