Django入门全攻略:从零搭建你的第一个Web项目

简介: Django入门全攻略:从零搭建你的第一个Web项目

前言

Django项目创建、子应用视图逻辑、模版、静态文件、模版语法、ORM(虾片写)

    探索Django的魅力,从零开始搭建你的首个Web项目。本文将指引你完成项目的创建、子应用的注册、视图逻辑的编写,以及模板与静态文件的使用,让你快速掌握Django开发的核心技能。


一、Django

1.0 框架介绍

    Django是一个开放源代码的Web 应用框架,由纯Python写成,是目前 Python 语言中主流 三大Web框架之一(flaskdjangotornadofastapi),是最容易上手的框架Django主要采用MVT模式。

MVT架构模式:

M-model模型,操作数据库功能部分

V-View视图,处理业务逻辑的位置,提取数据、获取用户数据等等操作都在这里

T-Template模版,用来展示视图操作后的数据渲染到html上,也可以在模版中为用户提供表单,让用户可以提交数据

1.1 Django安装

常用镜像源:
阿里:https://mirrors.aliyun.com/pypi/simple/
bd:https://mirror.baidu.com/pypi/simple/
qh:https://pypi.tuna.tsinghua.edu.cn/simple/

安装django:

pip install django==4.2.2  -i https://pypi.tuna.tsinghua.edu.cn/simple

1.2 Django项目创建

Django 项目创建步骤:

1、找到对应目录,代码存放目录

2、通过cmd终端命令行,进入当前目录

3、执行创建项目的命令:django-admin startproject 项目名

4、运行项目:python manage.py runserver

第一种方式:cd到项目/工程的根目录

第二种方式:在pycharm中,打开终端命令行,输入命令

# 1. 终端指令 创建 django 项目--myproject
django-admin startproject myproject
# 2. 进入到项目 里面
cd myproject
# 3. 启动 django 服务的指令
python manage.py runserver

1.3 目录介绍

  • manage.py:用来管理当前项目的一个命令行工具
  • myproject:项目主文件夹,包含了项目最基本的配置文件及路由文件
  • __init__.py:空文件,用来指明当前的myproject为一个可导入的模块包
  • settings.py:项目主要配置文件
  • urls.py:项目主要路由配置文件
  • wsgi.py:项目部署WSGI并发服务器时所需要的配置文件
  • asgi.py:对于支持异步的Django服务器,如Daphne,这个文件用于定义ASGI应用

二、子应用

2.1 子应用创建

子应用创建的三种方式:

1.python manage.py startapp appname
2.django-admin startapp appname
3.pycharm创建

2.2 目录结构

app/:app目录

  • admin.py:这个app所使用表模型在admin注册展示时需要的文件
  • views.py:视图函数文件,编写主要的增删改查等数据逻辑的地方
  • models.py:未来操作数据库时,如果使用ORM映射关系,那么将使用该文件

2.3 子应用注册

# settings.py 
INSTALLED_APPS = [
    
    'appname',
]

2.4 子应用视图逻辑

2.4.1 编写视图

打开app下的views.py文件,编写视图函数:

from django.http import HttpResponse
def index(request):
  return HttpResponse("<h1>Hello world</h1>")

2.4.2 编写路由

打开项目主目录下的urls.py文件,编写路由映射:

from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
  path('admin/', admin.site.urls), #admin 控制界面路由
  path('index/',views.index)
]

三、模版

3.1 模版使用步骤

模版使用步骤:

#  1. 项目根目录 创建 templates 文件夹
#  2.在settings.py--配置模板路径
#  3. templates 文件夹下面 创建 .html
# project.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 视图渲染

# app.views.py
from django.shortcuts import render
def index(request):
    return render(request, 'index.html')

四、模版语法

模版语法:将项目中的数据,加载到html中的语法

4.1 模版变量

#views.py
#context:上下文,只接收字典格式的数据
return render(request,'index.html',context = {'name':'张三'})
#index.html
名字:{{name}}
-------------------------------------------------
#locals() 将当前函数作用域下的变量及值组合为字典
return render(request,'index.html',context = locals())
------------------------
{{number}} ps:int,float,bool,string
{{list.0}} ps:list
{{dict.key}} ps:dict

4.2 for循环

{% for item in n3.keys %}
  {{ forloop.counter }} <!--当前循环次数,从1开始计数 -->
  {{ forloop.counter0 }} <!--当前循环次数,从0开始计数 -->
  {{ forloop.revcounter }} <!--当前循环次数,从最大长度开始 -->
  {{ forloop.revcounter0 }} <!--当前循环次数,从最大索引开始 -->
  {{ forloop.first }} <!-- 判断是否为第一次循环 -->
  {{ forloop.last }} <!-- 判断是否为最后一次循环 -->
  {{ forloop.parentloop }} <!-- 当循环嵌套时,访问上层循环 -->
  <div>{{ item }}</div>
{% empty %}
  <h1>当期字典为空</h1>
{% end for%}

4.3 if判断

{% if n1 == '李明' %}
  <h1>哒哒哒哒哒哒</h1>
{% elif n1 == 'xxx' %}
  <h1>滴滴滴</h1>
{% else %}
  <h1>嘟嘟嘟</h1>
{% endif %}

五、静态文件

静态文件加载步骤:

1、需要创建存放静态资源的文件目录:static

2、在settings中配置静态资源目录地址:STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]

3、在static中存放静态文件:图片、CSS等公共文件

4、在模版中(head标签上方),添加:{% load static%} ,使模版加载静态资源

5、在模版(.html)中使用:{% static 'imgs/img.png' %}


六、完整流程

1.创建应用并用pycharm打开:

2.创建子应用:

3.注册子应用:

4.创建视图:

5.创建路由:

6.python manage.py runserver:

7.创建模版 template:

a. 项目跟目录创建 templates文件夹
  b.在settings.py---配置模版路径
  c.templates 文件夹下面创建.html
• 1
• 2
• 3

8.如需添加静态文件:

静态资源加载步骤:

1.需要创建存放静态资源的文件目录:static

2.在settings中配置静态资源目录地址:STATICFILES_DIRS = [os.path.join(BASE_DIR),'static']

3.在static中存放静态文件:图片、CSS等公共文件

4.在模板中,在head上,添加:{% load static %},意思是告诉模板,需要加载静态资源

5.使用:{% static "img/img.png" %}

相关文章
|
9月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
790 1
|
10月前
|
JavaScript Java 微服务
现代化 Java Web 在线商城项目技术方案与实战开发流程及核心功能实现详解
本项目基于Spring Boot 3与Vue 3构建现代化在线商城系统,采用微服务架构,整合Spring Cloud、Redis、MySQL等技术,涵盖用户认证、商品管理、购物车功能,并支持Docker容器化部署与Kubernetes编排。提供完整CI/CD流程,助力高效开发与扩展。
1079 64
|
11月前
|
安全 JavaScript Java
java Web 项目完整案例实操指南包含从搭建到部署的详细步骤及热门长尾关键词解析的实操指南
本项目为一个完整的JavaWeb应用案例,采用Spring Boot 3、Vue 3、MySQL、Redis等最新技术栈,涵盖前后端分离架构设计、RESTful API开发、JWT安全认证、Docker容器化部署等内容,适合掌握企业级Web项目全流程开发与部署。
957 0
|
人工智能 安全 程序员
用 Colab 和 ngrok 免费部署你的 Web UI 项目,随时随地访问!
用 Colab 和 ngrok 免费部署你的 Web UI 项目,随时随地访问!
1538 12
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
1092 7
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
1104 7
Spring Boot 入门:简化 Java Web 开发的强大工具
|
安全 Linux 开发工具
零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
OpenIM 为开发者提供开源即时通讯 SDK,作为 Twilio、Sendbird 等云服务的替代方案。借助 OpenIM,开发者可以构建安全可靠的即时通讯应用,如 WeChat、Zoom、Slack 等。 本仓库基于开源版 OpenIM SDK 开发,提供了一款基于 Electron 的即时通讯应用。您可以使用此应用程序作为 OpenIM SDK 的参考实现。本项目同时引用了 @openim/electron-client-sdk 和 @openim/wasm-client-sdk,分别为 Electron 版本和 Web 版本的 SDK,可以同时构建 PC Web 程序和桌面应用(Wi
1474 2
|
数据管理 数据库 数据安全/隐私保护
Django—同一项目不同app使用不同数据库
在Django项目中实现不同app使用不同数据库的配置,可以通过配置多数据库、创建数据库路由和配置路由来实现。通过这种方法,可以有效地将数据隔离到不同的数据库,提高数据管理的灵活性和系统的可扩展性。希望本文能为开发者在Django项目中使用多数据库提供清晰的指导。
486 4
|
应用服务中间件 nginx Python
Django项目部署
环境 django == 1.11.16 nginx == 1.10.3 项目编写 略 安装nginx 略(前一篇有详细介绍) 配置uwsgi 创建 xxx.ini 文件 [uwsgi] socket=:9000 # 端口 chdir=/mnt/project/project_api # 项目路径 包含manage.
|
Ubuntu 应用服务中间件 nginx
Django项目部署
一、Nginx+uWSGI+Django部署生产环境 原理 为什么还要Nginx Django有个runserver直接起了一个WebServer,为什么还要Nginx起一个WebServer呢? Nginx的性能比Django自带的WebServe...
4696 0