权限管理系统-05-1-django环境搭建

本文详细介绍了Django框架的工作原理,包括其基于MVC/MTV模式的结构,数据库操作,URL路由,视图函数的编写,以及如何创建和配置Django项目和应用,以及相关的安全设置。
摘要由CSDN通过智能技术生成

系统架构

系统架构

Django

Django是一个开源的Python Web框架,用于快速构建高效、可扩展的Web应用程序。它遵循了MVC(模型-视图-控制器)的设计模式,提供了一套强大的工具和功能,使开发人员能够轻松地创建复杂的Web应用。

MTV模式:

Django的MTV模型本质上和MVC是一样的,也是为了各组件间保持松耦合关系,只是定义上有些不同

  1. M代表模型(Module):负责业务对象和数据库的关系映射(ORM)
  2. T代表模板(Template):负责如何把页面展示给用户(html)
  3. V代表视图(View):负责业务逻辑,并在适当时候调用Module和Template
    除了以上三层之外,还需要一个URL分发器,它的作用是将一个URL的页面请求分发给不同的View处理,View再调相应的Module和Template
MTV响应模式:
  1. Web服务器(中间件)收到一个http请求
  2. Django在URLconf里查找对应的视图(View)函数来处理http请求
  3. 视图函数调用相应的数据模型来存取数据,调用相应的模板向用户展示页面
  4. 视图函数处理结束后返回一个http的响应给Web服务器
  5. Web服务器将响应发送给客户端
  • MTV模型图解
    MTV模型.png

创建Django项目

Django可以自动生成一些代码,这些代码创建一个Django项目:一个Django实例的设置集合,包括数据库的配置,Django有关的选项和应用有关的选项

  • 新建项目
    创建项目
  • 项目目录结构,项目目录都由软件创建完成
    项目目录结构
项目文件说明:
  • 外层的yfidmgrdev/根目录仅仅是项目的一个容器。它的名字与Django无关,可以将其重命名为任何内容
  • managa.py:一个命令行管理工具,可以使用多种方式对Django项目进行交互。可以在django-admin和managa.py中读取到关于managa.py的所有细节
  • 内层的yfidmgrdev/目录是项目的真正的Python包。它是导入任何东西时需要使用的Python包的名字
  • yfidmgrdev/init.py:一个空文件,它告诉Python这个目录应该被看作一个Python包
  • yfidmgrdev/settings.py:改Django项目的设置/配置,Django settings将告诉你应该怎么设置
  • yfidmgrdev/urls.py:此Django项目的URL声明,Django驱动的网站的目录
  • yfidmgrdev/wsgi.py:用于项目与WSGI兼容的Web服务器入口
  • yfidmgr目录是应用名称,包含视图函数(views.py)和数据库模型(models.py)

修改参数

  1. Django默认只允许本机访问,英文环境,这些均可在settings.py中进行修改
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "yfidmgrdev",
        "USER": "yfidmgr",
        "PASSWORD": "123456",
        "HOST": "127.0.0.1",
        "PORT": "3306",
    }
}

ALLOWED_HOSTS = ['*']

LANGUAGE_CODE = 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_TZ = False
  1. 导入pymysql,如果没有安装需要先使用pip insall pymysql安装
# yfidmgrdev/__init__.py
import pymysql

pymysql.install_as_MySQLdb()
  1. 生成数据库
    Django生成的项目,使用了很多预先编写好的应用,这些应用需要用到数据
    只要执行以下语句,即可自动生成数据库
    在代码中有数据库定义改变时,需要执行以下两条语句
(venv) PS D:\pycode\yfidmgrdev> python manage.py makemigrations 
No changes detected
(venv) PS D:\pycode\yfidmgrdev> python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
...
  1. 创建管理员账户:
    访问后台需要有超级用户身份
    超级用户需要单独创建爱你
    用户将写到数据库中
(venv) PS D:\pycode\yfidmgrdev> python manage.py createsuperuser
用户名 (leave blank to use 'administrator'): ayyq
电子邮件地址: 
Password: 
Password (again):
密码长度太短。密码必须包含至少 8 个字符。
这个密码太常见了。
密码只包含数字。
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
  1. 启动服务
    Django自带一个开发服务器,默认运行于8000端口,可以更换
    该开发服务器不要用于生产环境下
    启动命令:python.exe .\manage.py runserver 0.0.0.0:8888

项目创建完成

配置应用

在初始化项目时已经创建了一个名叫yfidmgr的应用,也可以手动创建或添加应用

(venv) PS D:\pycode\yfidmgrdev> python .\manage.py startapp yfidmgr 

创建应用后,需要将其安装到项目中,否则应用不会生效

# 在settings.py中进行修改
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'yfidmgr',
]
  • 配置URLconf:
    为了整洁起见,与yfidmgr相关的url都交给yfidmgr应用记性路由
    修改yfidmgrdev/urls.py如下
from django.urls import path, include

urlpatterns = [
    # admin在后续开发中已经没有作用,可注释
    # path('admin/', admin.site.urls),
    path('yfidmgr/', include('yfidmgr.urls')),
]
  • 创建路由:
    创建yfidmgr应用的URLFconf,配置访问yfidmgr应用首页的视图
    创建yfidmgr/urls.py,内容如下
from yfidmgr import views
from django.urls import path, re_path, include

urlpatterns = [
    path('', views.index, name='index'),
]
  • 视图函数
# yfidmgr/views.py
from django.http import HttpResponse


def index(reauest):
    return HttpResponse("这是权限管理系统的首页")
  • 启动服务验证

初始化应用首页

GZH

  • 欢迎关注同名GZH"小红帽rh",获取更多最新分享。
  • 34
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值