Nginx+uWSGI+Django项目(史上最详细)

项目设计与配置

实现功能

  • 信息反馈页面:信息提交功能以表单形式实现,信息展示以数据列表形式呈现;每条信息包含序号、用户名、信息内容和提交日期

信息反馈页面

  • Admin后台系统:管理信息反馈页面的数据内容,方便网站管理员维护和管理网站的数据内容

  • 自定义异常机制:实现404和500的页面设置,使404和500页面与信息反馈页面的设计风格保持一致

自定义异常机制

  • 单元测试:测试信息反馈页面的功能,比如测试模型的读写操作、视图函数的业务逻辑

项目架构设计

  • 创建项目messageBoard
django-admin startproject messageBoard
  • 创建项目应用index(用于实现信息反馈页面)
python manage.py startapp index
  • 针对全局template的路由配置:在项目根目录下创建模板文件夹templates,并分别创建模板文件404.html、500.html和base.html(共用模板文件);在setting设置TEMPLATES
# setting.py

TEMPLATES = [
    {
   
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')], # 添加全局templates路径
        'APP_DIRS': True,
        'OPTIONS': {
   
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
# 全局模板的使用方式

from django.shortcuts import render
def hello(request):
    #render()是模板引擎,第一个参数是request,第二个参数是页面
    return render(request, "index.html")
  • 针对本应用内template的路由配置:在index应用文件夹中新建templates,其中再新建文件夹index,放置index.html(用于生成信息反馈页面,它继承共用模板文件base.html);在setting设置INSTALLED_APPS
# setting.py

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

'index',
]
# 本应用的模板使用方式

from django.shortcuts import render
def hello(request):
    #render()是模板引擎,第一个参数是request,第二个参数是页面
    return render(request, "index/index.html")
  • index应用文件夹中新建static(该文件夹的静态资源只能在Django的调试模式下使用),其中放置静态资源

  • 项目目录下新建static(该文件夹存放静态资源),需要对static进行配置(如进阶所述)

  • index应用文件夹中创建urls.py文件

  • index应用文件夹中创建form.py文件(用于定义表单类MessageModelForm,在模板文件index.html中使用表单类实现信息提交功能)

项目架构设计1
项目架构设计2

中间件

中间件介绍

中间件

  • Django中间件作用

    • 修改请求,即传送到view中的HttpRequest对象
    • 修改响应,即view返回的HttpResponse对象
  • 中间件组件配置在settings.py文件的MIDDLEWARE选项列表中

  • 配置中的每个字符串选项都是一个类,也就是一个中间件

中间件配置
# 添加中间件LocaleMiddleware,因为项目需要使用内置Admin后台系统实现信息反馈页面的数据管理
'django.middleware.locale.LocaleMiddleware', 

数据库配置

创建数据库
  • 使用Navicat创建数据库messagedb
连接数据库
# setting.py

# 将项目与数据库进行连接
DATABASES = {
   
    'default': {
   
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'messagedb',
        'USER' : 'root',
        'PASSWORD' : 'root',
        'HOST' : '127.0.0.1',
        'PORT' : '3306',
    }
}
数据库架构设计
  • 用户提交的信息以数据列表形式呈现;每条信息包含序号、用户名、信息内容和提交日期

  • 利用Django ORM,在models.py中定义表并映射到MySQL

# index的models.py

from django.db import models

class Message(models.Model): # 继承基类
    id = models.AutoField('序号', primary_key = True) # 自增长类型,数据表的字段类型为整数,长度为11位
    name = models.CharField('名称', max_length = 
  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值