news 2026/6/6 2:50:15

初步了解Django框架

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
初步了解Django框架

目录

    • 创建一个django项目
      • 1,vscode安装 “python”扩展
      • 2,创建一个 django项目
    • 了解目录
    • 创建app
    • 安装postgreSQL
    • 创建 demo_app model
    • 创建 demo_app views/urls/tempaltes
    • 创建全局 html文件
    • Django 模板语法
    • 其他

Django是一个高级的PythonWeb应用框架,可以快速开发安全和可维护的网站。

Django遵循一种称为MTV(模型-模板-视图)模式的架构模式。

创建一个django项目

1,vscode安装 “python”扩展

2,创建一个 django项目

# 新增一个文件夹 djangoDemo cd djangoDemo # 虚拟环境env python -m venv env #激活虚拟环境 .\env\Scripts\activate # 安装 django pip install django # 利用 django创建项目 django-admin startproject [项目名] # 运行开发服务 cd [项目名] python manage.py runserver 浏览器输入 http://127.0.0.1:8000/ 可以打开页面代表创建成功

了解目录

demo |----demon | |---- _pycache_ | |---- _init_.py // 表示这个目录属于python模块 | |---- asgi.py // 异步功能 | |---- settings.py // web服务器所需要的设置,比较重要 | |---- urls.py | |---- wsgi.py |----demo_app | |---- _pycache_ | |---- migations // 数据库架构的一个记录 | |---- templates // 存放html文件 | |---- _init_.py // 表示这个目录属于python模块 | |---- admin.py // django 后台管理 | |---- apps.py // 不需要管 | |---- models.py // 数据库数据表相关 | |---- tests.py // 运行测试程序 | |---- views.py // 处理逻辑返回http response |----manage.py // 项目的根目录

创建app

python manage.py startapp [app名称]

在demo>settings.py中添加我们新增的 app

安装postgreSQL

1,安装postgreSQL数据库:https://www.postgresql.org/,并将bin目录添加到系统环境变量中;

2,psycopg2 是一个用于 Python 的 PostgreSQL 数据库驱动程序。在使用 Django 中的 PostgreSQL 数据库前,需要先安装 psycopg2

pip install psycopg2

3, 在 settings.py中设置数据库配置

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', // 安装postgresql默认的数据库名称 'USER': 'postgres', //安装postgresql默认的user名称 'PASSWORD': '123456', // 应该是安装postgresql的时候自己设置的密码 'HOST': 'localhost', 'PORT': '5432', } }

在settings.py文件中完成postgreSQL数据库配置后,需要以命令形式同步数据库,在根目录下执行命令:

python manage.py makemigrations

python manage.py migrate

创建 demo_app model

# demo_project -> urls.py 有个admin路径 浏览器输入:http://127.0.0.1:8000/admin 打开一个后台登录页 # 创建一个管理员账户 python manage.py createsuperuser
# demo_app -> models.py 创建有个Todo数据表,有2个字段(name,due_date), class Todo(models.Model): name = models.CharField(max_length=100) due_date = models.DateField() // 对name做处理 def __str__(self): return self.name # demo_app -> admin.py 讲models.py新增的Todo,添加到后台管理页面中 from .models import Todo admin.site.register(Todo) # 同步数据库 python manage.py makemigrations python manage.py migrate

创建 demo_app views/urls/tempaltes

# demo_app -> views.py # 处理逻辑返回 http response from django.http import HttpResponse def todo_list(request): return HttpResponse('todo list') # demo -> urls.py urlpatterns = [ path('', todo_list), # 在 根目录 路径下下使用 todo_list函数处理 ] 页面显示 “todo list”
# demo_app -> views.py from django.shortcuts import render def todo_list(request): return render(request, 'todo_list.html') # demo_app -> templates 文件夹新建一个 todo_list.html <html> <head> <title>Todo List</title> </head> <body> <h1>todo_list.html</h1> </body> </html> 页面显示 “todo_list.html”的内容

创建全局 html文件

1,在项目的跟目录下 新建 templates 文件夹,里面新增todo_list.html文件 <html> <head> <title>Todo List</title> </head> <body> <h1>全局 todo_list.html</h1> </body> </html> 2,demo -> settings.py import os BASE_DIR = Path(__file__).resolve().parent.parent # 获取当前文件所在目录 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.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]

Django 模板语法

templates 文件夹里面存放 html文件,可以在html文件显示response 返回的数据

{% if condition %} # 条件判断 {% if not condition %} # 否定条件判断 {% for item in list %} # 循环遍历 {{ variable }} # 输出变量值 {% endif %}, {% endfor %} # 结束标签 例如: <html> <head> <title>Todo List</title> </head> <body> {% if not request.user.is_authenticated %} <h1>您好,{{request.user.username}}还未登录</h1> {% else %} <h2>{{request.user.username}}的Todo:</h2> <ul> {% for todo in todo_list %} <li>{{ todo.name }},截至时间 {{todo.due_date}}</li> {% endfor %} </ul> {% endif %} </body> </html>

其他

# 用户对象特性 request.user.is_authenticated # 判断用户是否登录 返回 Boolean
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 2:43:41

【0605】定时器测量 PWM 的底层原理

一、定时器里有几个关键寄存器 ┌─────────────────────────────────────────┐ │ TIM8 定时器 │ │ │ │ CNT ← 计数器&#xff1a;一直在跑&…

作者头像 李华
网站建设 2026/6/6 2:43:07

快速原型对比:用快马一键生成trae solo与ide的轻量级demo

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 请使用快马平台生成一个简单的web应用&#xff0c;用于对比trae solo和ide在开发同一个功能时的差异。应用需要包含两个并排的代码编辑器区域&#xff0c;左侧模拟trae solo的轻量…

作者头像 李华
网站建设 2026/6/6 2:41:48

SPSS交叉表实战:5分钟搞定疾病相对危险度计算(附数据准备要点)

SPSS交叉表实战&#xff1a;5分钟掌握疾病相对危险度计算全流程在医学研究和公共卫生领域&#xff0c;相对危险度&#xff08;Relative Risk, RR&#xff09;是评估暴露因素与疾病关联强度的核心指标。想象一下&#xff0c;你刚收集完200名患者的病毒检测和癌症诊断数据&#x…

作者头像 李华
网站建设 2026/6/6 2:36:21

HSTracker:macOS平台终极炉石传说卡组跟踪与数据驱动决策系统

HSTracker&#xff1a;macOS平台终极炉石传说卡组跟踪与数据驱动决策系统 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker HSTracker是macOS平台上专业的炉石传说卡组跟踪…

作者头像 李华
网站建设 2026/6/6 2:36:00

vue-esign:构建企业级电子签名解决方案的技术实践

vue-esign&#xff1a;构建企业级电子签名解决方案的技术实践 【免费下载链接】vue-esign canvas手写签字 电子签名 A canvas signature component of vue. 项目地址: https://gitcode.com/gh_mirrors/vu/vue-esign 在数字化办公日益普及的今天&#xff0c;电子签名已成…

作者头像 李华