一、Django 初识

简介

Django 是一个用于构建 Web 应用程序的高级 Python Web 框架。

版本对应

  • 不同版本的django框架是基于特定的不同的python版本开发的,所以不同版本的django框架要正常执行功能只能安装特定的python版本

  • Django安装

安装 Django

cmd 复制代码
# 全局安装 
pip install django
# 如果你用的是 Python 3.7,请安装 Django 2.2:
# pip install django==2.2

Django 自带的脚手架工具 django-admin 创建项目

cmd 复制代码
django-admin startproject django_news
cd django_news

IDEA启动Django项目

  • IDEA需要安装Python插件

  • 项目骨架

  • IDEA导入项目会识别成JAVA,需要在项目.iml文件中修改成 PYTHON_MODULE

  • 项目配置SDK

  • 添加Django

  • 配置Django

  • 添加Django运行

  • 添加Django运行,这里需要把manage.py中DJANGO_SETTINGS_MODULE=django_news.settings加到启动参数中

创建自定义 Django App

命令生成自定义APP

复制代码
python manage.py startapp daihao

生成的 daihao 应用文件夹结构:

复制代码
daihao                   // daihao 应用目录
├── __init__.py          // 初始化模块
├── admin.py             // 后台管理配置
├── apps.py              // 应用配置
├── migrations           // 数据库迁移文件目录
│   └── __init__.py      // 数据库迁移初始化模块
├── models.py            // 数据模型
├── tests.py             // 单元测试
└── views.py             // 视图

自定义 App 添加到全局配置,settings.py 中将 daihao 应用加入 INSTALLED_APPS 中

视图访问

  • 视图访问流程:Django 的路由系统是由全局路由和子应用路由组成。简单来说,根据用户输入的 URL,全局路由表进行匹配并选择正确的子应用路由,再由所选择的子应用路由匹配并选择正确的视图(View)
  • daihao/views.py,添加视图
python 复制代码
from django.http import HttpResponse

def index(request):
    return HttpResponse('Hello World!')
  • 访问index视图函数,先实现子应用的路由表,创建 daihao/urls.py
python 复制代码
from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

每一个 Django 路由表模块(urls.py)中都约定必须包含一个 urlpatterns 列表用来存放路由映射表。列表中每个元素是一个用 django.urls.path 函数封装好的路由映射,通常接收以下三个参数:

  • route:必须,即实际的访问路由,空字符串等于 /,即空路由
  • view:必须,该路由将要访问的视图
  • name:可选,该路由的名称,方便后续在模板中使用
  • 子应用路由接入全局路由,django_news/urls.py 中修改
python 复制代码
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    # '' 即通过 / 就能访问
    path('', include('daihao.urls')),
]
  • 启动运行
相关推荐
ZhengEnCi4 分钟前
P3H0-Python-os模块完全指南-操作系统接口与文件路径处理利器
python·操作系统
草莓熊Lotso8 分钟前
Git 本地操作进阶:版本回退、撤销修改与文件删除全攻略
java·javascript·c++·人工智能·git·python·网络协议
想看一次满天星19 分钟前
阿里140-语雀逆向分析
javascript·爬虫·python·语雀·阿里140
7***n751 小时前
Python虚拟现实案例
python·vr·pygame
程序员爱钓鱼2 小时前
Python编程实战:Python常用命令速查表(超全整理)
后端·python·trae
程序员爱钓鱼2 小时前
Python 编程实战:常用第三方库清单
后端·python·trae
qq_17082750 CNC注塑机数采3 小时前
【Python TensorFlow】 CNN-GRU卷积神经网络-门控循环神经网络时序预测算法(附代码)
python·rnn·机器学习·cnn·gru·tensorflow
云栈开源日记4 小时前
Python 开发技术栈梳理:从数据库、爬虫到 Django 与机器学习
数据库·爬虫·python·学习·机器学习·django
电子_咸鱼10 小时前
【STL string 全解析:接口详解、测试实战与模拟实现】
开发语言·c++·vscode·python·算法·leetcode
哈茶真的c10 小时前
【书籍心得】左耳听风:传奇程序员练级攻略
java·c语言·python·go