Django仪表板
你好,程序员们,
本文提供了一份精选列表,其中包含Django 仪表板和模板,其中包含基本模块、数据库、身份验证和部署脚本,可帮助初学者快速启动新项目。
对于新手来说,Django是最受欢迎的基于 Python 的 Web 框架,最初发布于 2003 年。“内置电池”概念和专家提供的内置安全模式使Django成为现代 Web 开发中的参考框架。
👉 使用Django App Generator构建您的启动器并自定义:
DB Tables
,,,,,Auth
Async Tasks
Docker
CI/Cd Scripts
詹戈·达塔·阿布尔
Datta Able Bootstrap Lite 是市场上所有其他精简/免费管理模板中最具风格化的 Bootstrap 4 Lite 管理模板。它拥有功能丰富的页面和组件,并完全以开发人员为中心编写代码。
- 👉 Datta Able Django - 完整文档
- 👉 Datta Able Django -
LIVE demo
火箭姜戈 TailwindCSS
这款 Django Boilerplate 包含构建 SaaS、分析工具或任何其他类型 Web 应用所需的一切。从构思到实际生产,只需几分钟。
- 👉 Rocket Django -
Product Page
- 👉 Rocket Django -
LIVE Demo
功能和技术堆栈:
TailwindCSS
•Flowbite
•API
(DRF)•Celery Beat
•DataTables
•Charts
•Docker
•CI/CD
。
Django Argon 仪表板
开源Django项目基于Argon Dashboard精心打造,是Creative-TimBootstrap 5
的开源设计。
- 👉 Django Argon 仪表板- 产品页面
- 👉 Django Argon 仪表板-
LIVE Demo
此入门套件附带一个代码库,该代码库使用可自定义主题的Argon UI(通过 PIP 安装),涵盖管理部分以及所有其他由 Django Auth 流程管理的页面。此外,无需任何额外操作或低级配置即可在Render上CI/CD
进行设置。allows deploying LIVE the product
软 UI 仪表板 Django
使用 Django 框架编写的管理面板。Soft UI Dashboard专为喜欢大胆元素和精美网站的用户设计,助您打造令人惊艳的网站和 Web 应用 -功能:
- ✅
Up-to-date Dependencies
- ✅
UI Kit
:Bootstrap 5 - ✅ 基本身份验证,
OAuth via Github
- ✅ API 生成器模块-
video presentation
- ✅动态数据表-
video presentation
Django 材料套件
像素级完美的 Bootstrap 5 UI 套件,包含预建的设计模块、4 个示例页面和 50 多个 UI 组件。如果您想获得灵感,或者只是想直接向客户展示一些内容,可以使用我们预建的示例页面快速启动您的开发工作。
- 👉 Django Material Kit - 产品页面
- 👉 Django Material Kit - LIVE 应用
Volt 仪表板 Django
Volt是一款免费开源的管理面板,基于Bootstrap 5开发,包含各种组件、页面和插件,可用于创建出色的管理界面。它还附带专业版,包含更多页面、插件和组件。
- 👉 Volt Dashboard Django-产品页面
- 👉 Volt 仪表板 Django - 在线演示
Django 仪表板材料
Material Dashboard专为喜欢大胆元素和精美网站的用户而设计,助您打造令人惊艳的网站和 Web 应用。Material Dashboard 2 内置 60 多个前端独立元素,例如按钮、输入框、导航栏、导航标签、卡片或提醒,让您可以自由选择和组合。
- 👉 Django 仪表板材料- 产品页面
- 👉 Django 仪表板材料- LIVE 应用
亚特兰蒂斯黑暗姜戈
一个使用 Django 编写的现代深色主题仪表板。代码可在 Github 获取 - 更多信息请访问产品页面。Atlantis
Lite Dark 是一款免费的 Bootstrap 4 管理仪表板,设计精美优雅,可用于显示各种指标、数字或数据可视化。
- 👉 Atlantis Dark Django - 产品页面
- 👉亚特兰蒂斯黑暗 Django - 现场演示
Django Argon 仪表板
Argon Design 由Creative-Tim用 Django 编写。该入门版使用与之前项目相同的代码库,并通过 Github 和 Discord 提供支持。
Argon Dashboard 包含 100 多个独立组件,让您可以自由选择和组合。所有组件都可以采用不同的颜色,您可以使用 SASS 文件轻松修改,而且它是开源且免费的。
- 👉 Django Argon 仪表板- 产品页面
- 👉 Django Argon 仪表板- 实时应用
Django 黑色仪表板
Black Dashboard是一款精美的 Bootstrap 4 管理仪表板,它拥有大量精心设计的组件,可轻松组合,外观惊艳。它融合了赏心悦目的色彩、宽敞的卡片布局、精美的字体和图形。
- 👉 Black Dashboard Django-产品页面
- 👉黑色仪表板 Django - 现场演示
共同特征:
- 知名厂商积极支持的现代 UI 套件
- UI 就绪、SQLite 数据库、Django 原生 ORM
- 模块化设计,简洁的代码库
- 基于会话的身份验证、表单验证
- 部署脚本:Docker、Gunicorn/Nginx
- 通过Github和Discord免费提供支持。
Django 是什么
Django 是一个由经验丰富的开发人员构建的高级 Python Web 框架,能够快速开发安全且易于维护的网站。该项目得到了一个强大的开源社区的积极支持和版本控制。
为什么使用 Django
成熟的框架
自 2008 年 9 月首次发布以来,Django 一直在不断改进。Django 秉承“Batteries Included”的理念,几乎提供了开发人员所需的所有“开箱即用”功能。由于您所需的一切都包含在一个“产品”中,因此所有功能都能无缝协作,遵循一致的设计原则,并拥有全面且最新的文档。
多才多艺的
Django 为您在项目中可能需要的几乎所有功能提供了选择(例如几个流行的数据库、模板引擎等),如果需要,它还可以扩展以使用其他组件。
安全
Django 内置了多种安全威胁防护机制,很好地解决了任何项目中至关重要的一个方面。Django 提供了一种安全的方式来管理用户账户和密码,避免了一些常见的错误,例如将会话信息放在容易受到攻击的 Cookie 中(Cookie 中只包含一个密钥,实际数据存储在数据库中),或者直接存储密码而不是密码哈希值。
有用的Django 资源:
- Django - 官方网站和文档
- Reddit/r/Django——一个超级活跃的 Reddit 社区
- Django - 由(流行的)Full-Stack-Python 平台提供的相关内容
样板代码
如前所述,Web 应用是使用自动化工具生成的,并且底层代码库完全相同。如果您在代码中发现某个 Bug,则很有可能在同一个 bundle 中的另一个项目中发现类似的 Bug。然而,任何自动化流程都有一些缺点,项目之间的错误继承就是其中之一。
结构
Django 项目默认是模块化的,非常易于理解和更新。我们的代码库分为三个模块:
- 核心 - 用于处理静态资产和全局配置
- 身份验证 - 管理登录和用户注册
- app - 管理所有其他操作:当用户通过身份验证时提供应用程序页面,否则重定向到登录页面。
从这里开始,我将参考一个真实的项目,以便于整个演示:Django Dashboard Black。相关文件列在这张简单的图表中。
$ # Source code:
$ # https://github.com/app-generator/django-dashboard-black
$
< PROJECT ROOT >
|
|-- core/
| |-- settings.py
| |-- wsgi.py
| |-- urls.py
| |
| |-- static/
| | |-- <css, JS, images>
| |
| |-- templates/
| |
| |-- includes/ # HTML chunks and
| | |-- navigation.html # Top menu component
| | |-- sidebar.html # Sidebar component
| | |-- footer.html # App Footer
| | |-- scripts.html # Common JS Scripts
| |
| |-- layouts/ # Master pages
| | |-- base-fullscreen.html # Used by Auth pages
| | |-- base.html # Used by common pages
| |
| |-- accounts/ # Authentication pages
| | |-- login.html # Login page
| | |-- register.html # Register page
| |
| index.html # The default page
| page-404.html # Error 404 page
| page-500.html # Error 404 page
| *.html # All other HTML pages
|
|-- authentication/ # Handles auth routes
| |
| |-- urls.py # Define auth routes
| |-- forms.py # Define auth forms
| |-- views.py
|
|-- app/
| |
| |-- views.py # Serve HTML pages
| |-- urls.py
|
|-- requirements.txt # Required Modules
|
|-- .env # Environment Config
|-- manage.py # Start the app
|
|-- *************************************
要从官方产品页面获取源代码,请解压缩并输入:
$ cd django-dashboard-black
工作原理
在使用 Django 应用之前,我们需要安装项目依赖项,这些依赖项通常列在名为 的文件中requirements.txt
。我们可以在全局 Python 环境中安装依赖项(不推荐),也可以使用名为VirtualEnv的沙盒环境。安装 Web 应用所需模块的必要命令如下:
$ # make sure you are in the project directory:
$ # django-dashboard-black
$
$ # Virtualenv modules installation (Unix based systems)
$ virtualenv --no-site-packages env
$ source env/bin/activate
$
$ # Install modules
$ pip3 install -r requirements.txt
Django 应用程序由manage.py文件引导,该文件通常保存在项目的根目录中,用于检查 Django 模块是否可用,并在加载后调用一个帮助程序execute_from_command_line
来公开一组可用于管理应用程序的基本子命令:
$
$ # Makemigrations sub-command generates the SQL code to mutate
$ # the database schema
$ python manage.py makemigrations
$
$ # Migrate sub-command apply the database changes (if any)
$ python manage.py migrate
$
$ # Runserver sub-command start the app on default port <8000>
$ python manage.py runserver
$
$ # Start the app - custom port
$ # python manage.py runserver 0.0.0.0:<your_port>
$
$ # Access the web app in browser: http://127.0.0.1:8000/
此时,如果应用程序配置和编码正确,应该可以在浏览器中看到。
应用程序配置
manage.py文件有一行神奇的代码,可以将所需的配置注入到应用程序中:
$ # The magic line
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')
此行通知 Django 框架从此路径加载配置:PROJECT_ROOT / core / settings.py
配置文件中最相关的行是:
# Contents of core / settings.py
....
# The section that enables the APP module
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
...
'app' # Enable the inner app
]
...
# Defines global app routing
ROOT_URLCONF = 'core.urls'
# Specifiy the ROOT dir HTML templates
TEMPLATE_DIR = os.path.join(BASE_DIR, "core/templates")
# Specify the ROOT for static assets
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "core/static"),
)
# Specify the database driver
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
应用路由
Django 通过使用文件中定义的正则表达式的级联规则来处理路由urls.py
。当请求到达服务器时,Django 会尝试从头开始分析已定义的规则来匹配该请求。在我们的例子中,设置文件指示框架从core/urls.py加载路由规则:
urlpatterns = [
path('admin/', admin.site.urls),
path("", include("authentication.urls")), # add this
path("", include("app.urls")) # add this
]
匹配顺序首先是admin模块(由Django框架定义),然后是认证规则,最后是app模块路由规则。
身份验证规则在authentication/urls.py中定义:
...
urlpatterns = [
path('login/', login_view, name="login"),
path('register/', register_user, name="register"),
path("logout/", LogoutView.as_view(), name="logout")
]
...
App Module 路由规则定义在app/urls.py中
urlpatterns = [
# Matches any html file
re_path(r'^.*\.html', views.pages, name='pages'),
# The home page
path('', views.index, name='home'),
]
Django 中的路由可能会让初学者感到困惑(对我来说,第一次使用时就是这样),但后来,在应用程序中添加新路由就成了一项简单的任务。
模板
页面以经典方式呈现,被许多模板系统(Jinja、Blade、Mustache)使用,通过使用主布局与注入动态数据(经过身份验证的用户的姓名/电子邮件等)的 HTML 部分相结合的组合。
正如配置部分所述,Django通过读取设置文件中的部分knows
来查找 HTML 部分和页面:TEMPLATES
...
# ROOT dir for templates
TEMPLATE_DIR = os.path.join(BASE_DIR, "core/templates")
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [TEMPLATE_DIR], <----- The magic line
'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',
],
},
},
]
...
示例页面结构
让我们看一下在index.html文件中定义的主仪表板页面:
{% extends "layouts/base.html" %}
{% block title %} Dashboard {% endblock %}
<!-- Specific Page CSS goes HERE -->
{% block stylesheets %}{% endblock stylesheets %}
{% block content %}
<div class="row">
...
</div>
{% endblock content %}
<!-- Specific Page JS goes HERE -->
{% block javascripts %}
<script>
$(document).ready(function() {
// Javascript method's body can be found in assets/js/demos.js
demo.initDashboardPageCharts();
});
</script>
{% endblock javascripts %}
extends
主布局文件在layouts/base.html中定义,通用结构被继承,页面仅定义特定的部分:
- 页面标题
- 主页内容
- 用于为仪表板图表制作动画的特定 javascript 代码。
最终产品
让我们启动应用程序,并在屏幕上看到一些不错的内容。下面的说明摘自README文件
$ # Get the code
$ git clone https://github.com/app-generator/django-dashboard-black.git
$ cd django-dashboard-black
$
$ # Virtualenv modules installation (Unix based systems)
$ virtualenv --no-site-packages env
$ source env/bin/activate
$
$ # Install modules
$ pip3 install -r requirements.txt
$
$ # Create tables
$ python manage.py makemigrations
$ python manage.py migrate
$
$ # Start the application (development mode)
$ python manage.py runserver # default port 8000
$
$ # Access the web app in the browser: http://127.0.0.1:8000/
如果一切顺利,黑色仪表板应该在浏览器中可见:

应用程序屏幕
文章来源:https://dev.to/sm0ke/django-dashboard-learn-by-coding-437l感谢阅读!如需更多资源,请访问: