首页 > 数据库技术 > 详细

部署新项目自动对数据库进行migrate和让用户收到创建用户/超级用户信息

时间:2019-11-26 16:40:46      阅读:89      评论:0      收藏:0      [点我收藏+]

当项目中的models有数据表的时候,普通做法是用docke exec -it hello_web_1 bash,进入容器进行migrate,但是我们想要容器一启动就自动创建数据表,可以修改docker-compose.yml中的command命令,如下:

version: ‘3‘
 
services:
  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: 123456
 
  web:
    build: .
    command:
      - /bin/bash
      - -c
      - |
        python3 manage.py makemigrations
        python3 manage.py migrate
        python3 manage.py runserver 0.0.0.0:8000
    ports:
      - 8000:8000
    depends_on:
      - db

 当我们需要登陆的时候,需要数据库中有user用户,使用django自带认证方法:

from django.shortcuts import render, redirect
from django.views import View
from django.contrib.auth import authenticate, login, logout, models

class thick_admin(View):
    """检测是否是第一次使用"""
    def get(self, request):
        exist_tag = "true"
        exist = models.User.objects.count()
        print(exist, exist)
        if exist == 0:
            exist_tag = "false"
        return render(request, "register.html", locals())
    def post(self, request):
        username = request.POST.get(username)
        password = request.POST.get(password)
        is_superuser = request.POST.get(is_superuser)
        if is_superuser:
            models.User.objects.create_superuser(username=username, password=password, email=None)
            print(superuser)
        else:
            models.User.objects.create_user(username=username, password=password)
            print(user)
        return redirect(/login/)

 

部署新项目自动对数据库进行migrate和让用户收到创建用户/超级用户信息

原文:https://www.cnblogs.com/yangyangming/p/11935369.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!