Django流程

1.Django项目创建和启动

# 创建项目
django-admin startproject 项目名

# 创建子应用
python manage.py startapp 应用名

# 启动应用
python manage.py runserver

2.视图

2.1 2.2在views写视图

# 在views.py中

from django.shortcuts import render
# 导入
from django.http import HttpResponse

# 视图函数
# def MyView(request):
    # 1.返回一个相应
    # return HttpResponse('<h3>这是我第一个视图</h3>')

2.2 配置视图路由

# 在urls.py 中配置
from django.contrib import admin
from django.urls import path
from myapp import views

# 主路由
urlpatterns = [
    path('admin/', admin.site.urls),
    path('myview/',views.MyView)
]

3.模板

3.1 配置模板

# 在settings.py 中配置

TEMPLATES = [ # 模板配置
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,'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',
            ],
        },
    },
]

3.2 创建模板文件夹

在根目录创建和配置名一样的文件名  templates => 创建HTML文件

4.ORM映射

4.1 注册自定义应用

# 在setting.py中配置
INSTALLED_APPS = [ # 注册
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'myapp', # 注册子应用
]

4.2 配置数据库

# 在settings.py中配置
DATABASES = { # 配置数据库 除端口外,其他都是数据库
    'default': {
        'ENGINE': 'django.db.backends.mysql', # 使用mysql数据库
        'HOST':'localhost', # 本机 127.0.0.1
        'POST': 3306,  # 端口
        'USER':'root',  # 用户名
        'PASSWORD':'123123', # 密码 自己的密码 字符串模式
        'NAME':'games',  # 数据库
    }
}

4.3 安装数据库

# 在项目文件中__init__.py 安装数据库
# 安装数据库
import pymysql
pymysql.install_as_MySQLdb()

4.4 编写模型类

# 在子应用中的models.py

from django.db import models

# Create your models here.

# 模型类 会自动生成 id字段
class game(models.Model):
    # CharField 字符段 max_length 最大长度--必传参数 verbose_name 后台管理名
    name = models.CharField(max_length=20,verbose_name='角色名')
    # IntegerField 整型
    atk = models.IntegerField(verbose_name='攻击力')
    level = models.IntegerField(verbose_name='等级')

4.5 迁移

# 在终端中写

# 生成迁移文件:
python .\manage.py makemigrations

# 执行迁移:
python .\manage.py migrate

4.6 表中添加数据

# 在admin控制台

# 创建超级用户
python manage.py createsuperuser

4.7 注册表

# 在admin.py中

from django.contrib import admin
# 导入
from myapp.models import game
# Register your models here.
admin.site.register(game)

5.MVT三层联动

5.1 views层从model拿数据

# views中

# 导包
from myapp.models import game

def MyView(request):
    # 3.MVT三层联动
    # 通过game模型类,取出数据库中的数据(ORM操作),取出所有角色信息
    game_data = game.objects.all()
    content = { # 传递给页面数据,字典模式
        'games':game_data,
    }
    # render 返回一个模板页面
    return render(request,'index2.html',content)

5.2 模板渲染

# 从html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h3>展示数据库中角色信息</h3>
    <table width="500px" border="1px" align="center">
        <tr>
            <th>编号</th>
            <th>角色名</th>
            <th>攻击力</th>
            <th>等级</th>
        </tr>
        {% for game in games %}
        <tr>
            <td>{{ game.id }}</td>
            <td>{{ game.name }}</td>
            <td>{{ game.atk }}</td>
            <td>{{ game.level }}</td>
        </tr>
        {% endfor %}
    </table>
</body>
</html>

### 在Django项目中集成和使用流程引擎进行工作流管理 对于希望在其基于Django的应用程序中实施业务流程管理和工作流功能的开发者来说,有多种方法可以选择。一种方式是利用专门为Django设计的工作流库。 #### 使用 `django-river` 实现动态可变的工作流逻辑 `django-river` 是一个支持实时变更的工作流库[^2]。它允许应用程序中的工作流结构根据需求灵活调整而无需重新部署应用。这使得管理员可以在不中断服务的情况下修改审批路径或其他流程细节。通过这种方式,可以更轻松地适应不断变化的企业内部政策或者外部法规的要求。 #### 利用轻量级框架 `workflow` 另一个选项是由 GitCode 托管的名为 `workflow` 的小型工作流引擎应用程序[^1]。此工具专为简化Web开发人员创建复杂多阶段的任务处理过程提供了便利。其特点在于易于配置以及良好的文档说明,适合那些寻求快速上手并构建定制化解决方案的人群。 #### 启动与测试环境搭建 无论选择了上述哪种方案,在本地环境中验证新特性总是明智之举。可以通过执行如下Python命令来启动内置的Django开发服务器以便于调试目的[^3]: ```bash python manage.py runserver ``` #### 自定义字段增强灵活性 为了使工作流更加贴合具体应用场景的需求,通常还需要考虑加入一些额外的信息作为扩展属性。这些可能包括但不限于:唯一识别码、类别标签、显示顺序等元数据项[^5]。这样做的好处是可以让最终呈现给用户的界面更为直观友好,并且有助于提高后续数据分析工作的效率。 #### 跨平台对比及其他选择 虽然这里主要讨论的是针对 Python/Django 生态圈内的产品,但如果团队成员熟悉其他编程语言的话,则不妨也考察一下像 jBPM 或 Activiti 这样的Java社区知名开源项目[^4]。它们同样具备强大的图形建模器和支持插件机制等特点,能够满足大型企业级项目的严格要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值