1 准备工作
1.1 环境搭建
1.1.1 安装python3.6
python安装官网
1.1.2 安装django2.2
pip install django(==2.2.0) //不加版本默认安装最新版
1.1.3 安装pycharm(社区版,官网下载安装即可)
在安装完成后要配置好需要的第三方库:(pip下载,推荐在pycharm下也配置虚拟环境)
Django2.2
连接mysql需要的库:PyMySQL, mysql, mysqlclinet
验证码用到的库:django-simple-captcha
(只需在虚拟环境下配置)
(由于下载库较多,忘记用到的库,下附截图)
1.1.4 安装数据库,
我使用的是MySQL,推荐安装界面管理文件(我使用的是MySQLWorkbench)数据库配置,settings.py文件
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'cet', #数据库名字 'USER':'root', #登陆数据库的用户名 'PASSWORD':'123', #登陆数据库的密码 'HOST':'localhost', #数据库的ip地址 'PORT':'3306', #ip地址的端口号,默认(3306) } }
__init__.py里面导入pymysql
import pymysql pymysql.install_as_MySQLdb()
1.2 创建django项目及app
1.2.1 创建指令
django-admin star<p style="color:transparent">本文来源gao!%daima.com搞$代*!码$网3</p>tproject project_name #创建项目 python manage.py startapp app_name #创建app(可能会报错) #上面创建app失败用下面这个指令 django-admin startapp app_name 1.2.2 注册app INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'login', #登录注册 'captcha', #验证码 'home', #报名主页 ]
1.4 更改时区和语言
settings.py文件中,将默认改为亚洲/上海和中文
LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' USE_I18N = True USE_L10N = True USE_TZ = False
1.5 数据库迁移
更改models.py后,要将更改同步到数据库之中,这时就要用到数据库迁移指令(若迁移失败:no changes问题)。
python manage.py makemigrations python manage.py migrate
1.6 创建超级管理员
命令行冲使用指令创建管理员账号用于使用django自带的框架。
python manage.py createsuperuser
1.7 运行准备
添加端口号:
2 注册登录模块
(我将其放在了app名为login里面)
2.1 数据库模型设计
特殊参数说明:verbose_name——用于修改django框架各表成员的名字(相当于副名,只用于显示),其他可以从文章
开头推荐的博客了解。
#login/models.py from django.db import models # Create your models here. class User(models.Model): '''用户表''' gender = ( ('male', '男'), ('female', '女'), ) name = models.CharField(verbose_name="用户名", max_length=128, unique=True) # unique表示唯一 password = models.CharField(verbose_name="密码", max_length=256) email = models.EmailField(verbose_name="邮箱", unique=True) sex = models.CharField(verbose_name="性别", max_length=32, choices=gender, default='男') c_time = models.DateTimeField(auto_now_add=True) def __str__(self): return self.name #用于将django自带管理员端汉化 class Meta: ordering = ['c_time'] verbose_name = '用户' verbose_name_plural = '用户'
2.2 在admin中注册模型
#login/admin.py from django.contrib import admin # Register your models here. from . import models admin.site.register(models.User)