django 关键步骤点

1、命令

python manage.py startapp 子应用名称

python manage.py runserver 8001    指定端口号
# nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。 
nohup Command [ Arg … ] [ & ]
# 参数说明:
# Command:要执行的命令。
# Arg:一些参数,可以指定输出文件。
# &:让命令在后台执行,终端退出后命令仍旧执行。
nohup python manage.py runserver 0.0.0.0:8000 &     后台运行
nohup python manage.py runserver 0.0.0.0:8000  > /dev/log 2> /dev/log &      将日志输出到/dev/log

lsof -i:8000       查看该端口进程号
kill -9 PID          上一步的pid号

使用配置时可以导入from django.conf import settings,如:settings.DATABASES 

python manage.py createsuperuser  创建超级管理员

python manage.py makemigrations # 生成迁移文件
python manage.py migrate  # 同步到数据库中
python manage.py migrate --database=database1 #同步指定数据库
python manage.py migrate --database=database2

python manage.py createsuperuser


Ctrl + C 退出后关闭端口
Ctrl + Z 退出后不关闭端口

2、小的点

# 如模型类为Users
Users._meta.fields  # 获取Users模型类所有的字段
Users.objects.none()  # 创建一个空的queryset
Users.name  # 获取单个字段
eval('Users.%s' % 'name')  # 通过给定字符串获取字段,如获取name字段,有其他方式麻烦告诉我下呀,我这个有点不正宗

3、配置文件独立,分为3个文件,

1)公共配置base.py、开发配置dev.py、生产环境配置prod.py,
2)在dev.py和prod.py中导入公共配置,即加入from .base import *
3)开发时,可指定配置文件,python3 manage.py runserver 0.0.0.0:5001 --settings=django_search_proj.settings.dev 启动,
4)生产环境可以通过export DJANGO_SETTINGS_MODULE=“django_search_proj.settings.prod”
在这里插入图片描述

4、多个数据库指定app

DATABASES = {
    'default': {  # 默认的数据库,保存django一些默认的表如auth_user  auth_user_groups auth_user_user_permissions 等
        'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
        'HOST': ' ',  # 人员测试数据库主机
        'PORT': 3306,  # 数据库端口
        'USER': '',  # 数据库用户名
        'PASSWORD': '',  # 数据库用户密码
        'NAME': ''  # 数据库名字
    },
    'database1': {
        'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
        'HOST': '',  # 人员测试数据库主机ip地址
        'PORT': 3306,  # 数据库端口
        'USER': '',  # 数据库用户名
        'PASSWORD': '',  # 数据库用户密码
        'NAME': ''  # 数据库名字
    },
}

DATABASE_APPS_MAPPING = {
    'appname': 'database1',
}
DATABASE_ROUTERS = ['django_search_proj.settings.database_apps_router.DatabaseAppsRouter']  # 指定路由文件路径

新建一个数据库路由文件

#!/usr/bin/env python
# coding:utf8
from django.conf import settings

DATABASE_MAPPING = settings.DATABASE_APPS_MAPPING  # 在setting中定义的路由表


class DatabaseAppsRouter(object):
    def db_for_read(self, model, **hints):
        if model._meta.app_label in DATABASE_MAPPING:
            return DATABASE_MAPPING[model._meta.app_label]
        return None

    def db_for_write(self, model, **hints):

        if model._meta.app_label in DATABASE_MAPPING:
            return DATABASE_MAPPING[model._meta.app_label]
        return None

    def allow_relation(self, obj1, obj2, **hints):

        db_obj1 = DATABASE_MAPPING.get(obj1._meta.app_label)
        db_obj2 = DATABASE_MAPPING.get(obj2._meta.app_label)
        if db_obj1 and db_obj2:
            if db_obj1 == db_obj2:
                return True
            else:
                return False
        return None

    def allow_syncdb(self, db, model):

        if db in DATABASE_MAPPING.values():
            return DATABASE_MAPPING.get(model._meta.app_label) == db
        elif model._meta.app_label in DATABASE_MAPPING:
            return False
        return None

    def allow_migrate(self, db, app_label, model_name=None, **hints):
        if db in DATABASE_MAPPING.values():
            return DATABASE_MAPPING.get(app_label) == db
        elif app_label in DATABASE_MAPPING:
            return False
        return None
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值