- 创建项目
Django-admin startproject 项目名
- cd 项目 创建子应用
Python manage.py startapp 子项目名
-
把项目添加到编辑器
-
进入主项目的setting.py文件配置
(1) INSTALLED_APPS里面添加子项目的名字
(2) MIDDLEWARE把这里面的跨域请求注释掉
(3) TEMPLATES—>‘DIRS’: [os.path.join(BASE_DIR,‘templates’)],
(4) 想用mysql先创建个数据库
然后配置 记得改数据库名称 和密码
DATABASES = {
‘default’: {
#连接mysql
‘ENGINE’: ‘django.db.backends.mysql’,
#数据库名称
‘NAME’: ‘s2’,
#数据库用户
‘USER’:‘root’,
#密码
‘PASSWORD’:‘mysql’,
#ip 不填默认localhost
‘HOST’:’’,
#端口 不填 默认就是3306
‘PORT’:’’,
#数据库配置
#自动提交
‘OPTIONS’:{‘autocommit’:True}
}
}
然后在主项目的__init__.py文件下
#导包
import pymysql
#进行初始化
pymysql.install_as_MySQLdb()
(5) 如果用sqlite3
python manage.py migrate 迁移自带的数据库
随后Python manage.py createsuperuser注册admin账户
(6) 把语言时区改了
LANGUAGE_CODE = ‘zh-Hans’
TIME_ZONE = ‘Asia/Shanghai’
(7) 添加
STATICFILES_DIRS =(
os.path.join(BASE_DIR, ‘static’),
)
-
随后在大的项目下创建tamplate和static文件夹
-
路由分发
-
把主项目的urls.py复制在子项目里面 把子项目的urls.py里面的path(‘admin/’, admin.site.urls),删了 导入子项目的views文件
-
然后看题目要求 用到的数据库类型
(1) 一对一 数据库外键类型OneToOneField(to, on_delete, parent_link=False, options)
(2) 一对多 数据库类型
保留原数据ForeignKey(关联表名,null=True,on_delete=models.SET_NULL)
不保留原数据ForeignKey(关联表名,null=True,on_delete=models.CASCADE)
(3) 多对多 数据类型.ManyToManyField(关联表名)
(4) Mysql数据库的话 后面跟上这个 在mysql数据库下能看到你建的表名 不跟也行
class Meta:
db_table = ‘user’
(5) Sqlite3 跟上这个 在admin后台能看只管的看到你用的啥表
class Meta:
verbose_name_plural = ‘自定义的表名’
def str(self):
return self.name
然后再子项目的admin.py里面导入你的models.py文件
From 子项目名 import models
admin.site.register(models.表名)
- 表建好之后在template文件夹下写模板 记住几点
(1) form表单提交要在form标签里面写上action 里面是你要提交的路径 method是你以POST还是GET方式提交 如果用到上传图片写enctype="multipart/form-data"然后要写name值之后传到后端获取数据的时候要用到 记得写上一个提交按钮
- 在子项目的views.py文件下写后端代码(接口)
(1) 导模块
from django.shortcuts import render,redirect,reverse
from django.http import HttpResponse
from myapp.models import * 这个是数据库模块
(2) 起名字的时候最好首字母大写 标准规范
(3) 之后就是写接口 记得一个接口一个路由
(4) 获取前台的name值
Request.PSOT/GET.get(‘前端的name值’)
获取图片
fp=Request.FILES.get(‘前端的name值’)(记得要在static里面建一个img文件夹)
获取图片的时候要 导包
from 主项目.settings import STATICFILES_DIRS
import os
import hashlib
import time
Md5加密
在普通视图下写时间 把时间加在md5加密下面
大致流程就是那样