适用于初学者!!!
pip3 install django
进入cmd,使用命令创建django
# 创建django的python环境,并切换到该环境下 cd <project name> django-admin startproject <project name>
使用IDE打开项目文件夹,在项目下修改
settings.py
文件和创建settings,apps,logs,utils
文件夹├── project_name └── project_name └── settings # 新文件夹,用于存放生产环境,开发环境的配置文件,和默认的setting.py文件一样 ├── base.py # 由默认生成的setting.py改名 ├── dev.py # 空白的py文件,开发环境development ├── __init__.py ├── urls.py # 主路由 ... ├── apps # 新文件夹,用于存放应用 ├── logs # 新文件夹,用于存放日志 └── utils # 新文件夹,用于存放自定义的公共类
# settings/dev.py from .base import * ALLOWED_HOSTS += ["*"] # 允许所有主机
这里是设置的开发环境,代码修改如下
# manage.py # os.environ.setdefault('DJANGO_SETTINGS_MODULE', '
.settings') os.environ.setdefault('DJANGO_SETTINGS_MODULE', '.settings.dev' )
创建
users
模块cd apps python ../manage.py startapp users
在
users
模块下新建urls.py
文件├── project_name └── apps └── users ├── migrations # 迁移文件夹 └── __init__.py ├── admin.py # django自带的后台管理操作需要再此处实现 ├── apps.py # 应用的配置信息 ├── models.py # 数据表模型 ├── tests.py # 单元测试 ├── urls.py # 新建的urls管理,子路由 └── views.py # 视图(接口函数) ├── project_name └── urls.py # 主路由
# views.py
# 第一种方式,使用类
from django.views import View
class Users(View):
def get(self, r):
pass
def post(self, r):
pass
# 第二种方式,使用函数
def users(request):
if request.method == 'GET':
pass
if request.method == 'POST':
pass
├── users
└── urls.py
# urls.py
from django.urls import path, re_path
from django.views.decorators.csrf import csrf_exempt # 解决跨域问题
from . import views
urlpatterns = [
# re_path(r'delete(\d+?)/',views.delete)
path('路由名1', csrf_exempt(views.函数名)),
path('路由名2', csrf_exempt(views.类名.as_view())), # 一定要加as_view()
]
├── project_name
└── project_name
├── settings
...
└── urls.py # 主路由
└── users
└── urls.py # 子路由
# project_name/project_name/urls.py
from django.urls import path, include
urlpatterns = [
# path('', include(('user.urls', 'user'), namespace='user')), # 带命名空间
path('admin/', admin.site.urls), # 默认生成的
path('users/', include('apps.users.urls')), # 连接子路由
]
# models.py
from django.contrib.auth.base_user import AbstractBaseUser
from django.contrib.auth.models import PermissionsMixin
from django.db import models
class Users(AbstractBaseUser, PermissionsMixin):
class Meta:
ordering = ['email']
verbose_name = 'User'
verbose_name_plural = 'Users'
db_table = 'users'
permissions = (
('can_add_user', 'Can add user'),
('can_change_user', 'Can change user'),
('can_delete_user', 'Can delete user'),
)
email = models.EmailField(max_length=255, unique=True, db_index=True)
name = models.CharField(max_length=255)
is_active = models.BooleanField(default=True)
avatar = models.ImageField(default=None)
def __str__(self):
return self.email
MySQL
pip3 install pymysql
当使用数据库时需要在
project_name/project_name/__init__.py
文件中添加如下代码├── project_name └── project_name ├── settings ├── asgi.py └── __init__.py # 修改该文件
import pymysql # 指定了pymysql的版本:1.4.3,按照你版本修改,python3.5+ 必须加 pymysql.version_info = (1, 4, 3, 'final', 0) pymysql.install_as_MySQLdb()
配置连接数据库参数
# settings/dev.py # 添加如下参数 DATABASES = { 'default': { "ENGINE": "django.db.backends.mysql", # 数据库引擎 "NAME": "", # 数据库名称 "USER": "", # 用户名 "PASSWORD": "", # 密码 "HOST": "", # 主机地址 "PORT": "", # 端口号 } }
PostgreSQL
pip3 install psycopg2-binary
只需要修改
settings/dev.py
文件# settings/dev.py # 添加如下参数 DATABASES = { 'default': { "ENGINE": "django.db.backends.postgresql_psycopg2", # 数据库引擎 "NAME": "", # 数据库名称 "USER": "", # 用户名 "PASSWORD": "", # 密码 "HOST": "", # 主机地址 "PORT": "", # 端口号 } }
兼容方法
# settings/dev.py # 添加如下参数 db_config = { "sqlite": { "ENGINE": "django.db.backends.sqlite3", "NAME": BASE_DIR / "db.sqlite3", # noqa: F405 "OPTIONS": {"timeout": 20}, }, "pgsql": { "ENGINE": "django.db.backends.postgresql", "NAME": "taotie", "USER": "root", "PASSWORD": "taotie", "HOST": "localhost", "PORT": 5432, }, "mysql": { "ENGINE": "django.db.backends.mysql", "NAME": "taotie", "USER": "root", "PASSWORD": "taotie", "HOST": "localhost", "PORT": 3306, }, } DATABASES = {"default": db_config["mysql"]}
# settings/dev.py
INSTALLED_APPS += [
"apps.users", # 添加应用(功能模块)
"apps.xxx", # 如果还有其他应用的话需要一一添加
]
之前可以直接添加apps就行,不知道是少了什么配置还是什么原因,如果您知道,欢迎评论,感谢大佬!!!!!
**注意 注意 注意:**由于使用apps文件夹进行应用模块的管理,所以迁移文件时需要进入apps文件夹进行迁移,否则迁移不成功
cd apps
python ../manage.py makemigrations # 生成迁移文件
python ../manage.py migrate # 执行迁移文件,更新数据库
python3 manage.py runserver
django
项目创建后会自动生成一个admin的应用,需要创建管理员用户,命令如下
python manage.py createsuperuser
django
创建数据表模型的DateTimeField
或DateField
类型时,auto_now_add
auto_now
default
,这三个参数不能同时存在。