1. 数据库的设置
- Django默认有自带的数据库,当需要用其他数据库时需要修改设置,这里用MySQL示范
- 首先确认是否安装MySQL数据库,pymysql 模块
- 修改Django项目的setting 文件
#导入 pymsql 模块 import pymysql #django 默认用MySQLdb(),这里将pymysql看作,如果安装有其他插件可不写这句话。 pymysql.install_as_MySQLdb() #修改配置信息 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'myui_info', #链接的数据库名字 'USER': 'root', #登陆数据库账号密码 'PASSWORD':'root', ...... } }
2. 项目显示语言设置
- 默认为英文
#文字设置为中文 LANGUAGE_CODE = 'zh-Hans'
3. 项目生产时允许通过IP连接
- 默认为空,只允许本地 localhost 连接
#文字设置IP连接 ALLOWED_HOSTS = [ '*',] #当修改设置后,启动方式也要改变,不再是直接 python manage.py runserver python manage.py runserver 0.0.0.0:8000 #注意:这样的方式启动是通过内置的测试服务器启动并发布项目的, #只适用于开发,项目开发完成,部署上线时,要将web项目部署到独立的服务器上
4. 项目前端页面文件与静态资源文件的设置与存放
- 根目录的静态资源与网页,公共资源
- 创建文件夹存放资源与网页
在主目录里直接创建 temp 文件夹和 static 文件夹 - 修改setting 文件,设置默认查找文件路径
# static 文件存放静态资源,images/css/js STATICFILES_DIRS=[ os.path.join(BASE_DIR,'static'), ] # tmpe文件放html文件 TEMPLATES = [ { 'DIRS': ['tmpe'], } ]
- 创建文件夹存放资源与网页
- 子项目的静态资源与网页
- 创建文件夹存放资源与网页
在子项目里创建 templatest 文件夹 / 子项目名称的文件 / 和 static 文件夹/ 子项目名称文件夹/ ,在文件夹里存放资源和网页,为什么多创建一个子项目名称文件,是为了文件隔离,防止子项目文件名和主项目文件名一致,引起冲突,无法找到子项目文件,直接使用主项目的文件 - 直接使用,不需要设置。
- 创建文件夹存放资源与网页
5. Django自带后台管理系统
- 首先先创建超级管理员用户
#执行命令: python manage.py createsuperuser #输入要创建的账号,密码,邮箱等,一般只需要账号密码即可。
- 登录后台管理系统
将网页路径端口后面改为admin即可访问后台网页,通过账号密码登录后台,但此时后台什么都没有,需要我们将 models 文件里创建的类添加注册到后台 admin 文件。 - 将项目的models注册到后台管理系统
- models 文件 添加设置
class User(models.Model) # 添加设置 verbose_name ,在后台就可以显示对应的对象属性名称, #不然后台只能看到显示所有属性的类型 name=models.CharFiled(max_length=200,verbose_name="名称") #这是修改 class 后台显示的名称 class Meta: verbose_name = "用户信息" verbose_name_plural = verbose_name #访问属性时返回属性的名字 def __str__(self): return self.name
- admin 文件 注册 models 数据
#导入 models 里的类 from .models import User #将User类注册到 admin 里 admin.site.register(User)
- app 文件添加配置
#导入 models 里的类 verbose_name = '用户信息'
- models 文件 添加设置
6. 反解析路由
- 当一个函数处理完,需要返回一个页面,当这个页面还有自己特有的数据需要展示,此时需要调用显示这个页面自己的处理函数。
#引入模块: from django.shortcuts import redirect #反向解析,直接可调用 name='名字' 的url路由处理函数。 from django.core.urlresolvers import reverse #返回 app_name='mysess' 的 name='index' 的处理函数 return redirect(reverse('mysess:index'))