【Django】初识Django&快速上手

Django简介

Django是一个高级的、开源的Python Web框架,旨在快速、高效地开发高质量的Web应用程序
https://developer.mozilla.org/zh-CN/docs/Learn/Server-side/Django/Introduction

安装Django

复制代码
pip install Django

如果要知道安装的Django的版本,可以在命令行工具下输入

复制代码
python -m django --version

安装完django后的目录结构如下

复制代码
D:\PythonEv
	- python.exe
	- Scripts
		- pip.exe
		- django-admin.exe   
	- Lib
		- 内置模块
		- site-packages
			- django         

这里会发现Scripts文件夹下多了一个djangon-admin.exe文件,这个可以执行程序的作用是创建django项目中的文件和文件夹。在django项目中会有一些默认的文件和文件夹。

创建Django项目

在终端中创建

在windows的cmd环境中,输入下面的命令:

复制代码
django-admin startproject mysite

就会在当前目录下创建一个名为mysite的项目

复制代码
PS D:\MyCode\Python\Web\DjangoProject> django-admin startproject mysite
PS D:\MyCode\Python\Web\DjangoProject> dir


    目录: D:\MyCode\Python\Web\DjangoProject


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2024/4/27     16:48                mysite

进入这个mysite目录下你会发现有一个同名的mysite目录,这个mysite目录是整个项目的配置文件目录,上一个mysite目录是项目的根目录,还有一个manage.py文件,这个是项目的管理脚本。

复制代码
PS D:\MyCode\Python\Web\DjangoProject> cd mysite
PS D:\MyCode\Python\Web\DjangoProject\mysite> dir


    目录: D:\MyCode\Python\Web\DjangoProject\mysite


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2024/4/27     16:48                mysite
-a----         2024/4/27     16:48            684 manage.py

PS D:\MyCode\Python\Web\DjangoProject\mysite> cd mysite
PS D:\MyCode\Python\Web\DjangoProject\mysite\mysite> dir


    目录: D:\MyCode\Python\Web\DjangoProject\mysite\mysite


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2024/4/27     16:48            405 asgi.py
-a----         2024/4/27     16:48           3345 settings.py
-a----         2024/4/27     16:48            784 urls.py
-a----         2024/4/27     16:48            405 wsgi.py
-a----         2024/4/27     16:48              0 __init__.py

项目根目录下,运行python manage.py runserver,Django会以127.0.0.1:8000这个默认配置启动项目。

打开浏览器输入127.0.0.1:8000显示下面的页面就说明成功啦

使用Pycharm创建

对比通过终端创建的Django项目和通过Pycharm创建的Django项目,会发现通过Pycharm创建的Django项目多了一个templates文件夹。

这是因为Pycharm在标准的基础上默认加了点东西。这个创建的templates目录可以删除,在setting.py文件中有如下代码

python 复制代码
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [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',
            ],
        },
    },
]

在终端创建的项目中的settings.py文件里 这行代码'DIRS': [BASE_DIR / 'templates']的写法是'DIRS': []。在删除掉templates文件夹后记得要修改这行代码。

创建APP

在Django框架中,app 是指一个具有明确边界和独立功能的模块化组件,在一个Django项目中可以有多个app。

项目和应用有什么区别?应用是一个专门做某件事的网络应用程序------比如博客系统,或者公共记录的数据库,或者小型的投票程序。项目则是一个网站使用的配置和应用的集合。项目可以包含很多个应用。应用可以被很多个项目使用。

通常是将app放在和manage.py同级的目录下。在mysite项目的根目录下输入如下命令(在Pychram中也是要通过Terminal终端通过命令创建)

复制代码
python manage.py startapp app01

系统就会自动生成app01的目录。app01的结构如下:

复制代码
PS D:\MyCode\Python\Web\DjangoProject\mysite> python manage.py startapp app01
PS D:\MyCode\Python\Web\DjangoProject\mysite> cd app01
PS D:\MyCode\Python\Web\DjangoProject\mysite\app01> dir


    目录: D:\MyCode\Python\Web\DjangoProject\mysite\app01


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2024/4/27     17:37                migrations
-a----         2024/4/27     17:37             66 admin.py
-a----         2024/4/27     17:37            148 apps.py
-a----         2024/4/27     17:37             60 models.py 对数据库操作
-a----         2024/4/27     17:37             63 tests.py	单元测试
-a----         2024/4/27     17:37             66 views.py	视图函数
-a----         2024/4/27     17:37              0 __init__.py

快速上手

  • 注册app

  • 编写URL和视图函数的对应关系

  • 编写视图函数

  • 运行

这只是一个简单的例子,实际的界面肯定是要加载html文件的,这就要引入模板。

templates模板

在app01目录下创建一个templates文件夹,在这个文件夹中创建了一个index.html文件,将view.py中的index方法修改成如下形式

python 复制代码
def index(request):
    return render(request,"index.html")

Django会根据app的注册顺序,在每一个app的templates文件夹下去寻找index.html文件

静态文件

在开发过程中图片,css,js都会当做静态文件处理。可以在app下创建一个static目录专门存放这些静态文件。

引入静态文件

HTML模板文件的顶部,使用 {% load static %} 标签加载静态文件标签库。然后,使用 {% static %} 标签来引用静态文件的URL

html 复制代码
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="{% static "plugins/bootstrap-3.4.1/css/bootstrap.min.css" %}">
</head>
<body>
<img src="{% static "img/img.png" %}" alt="">

<div class="dropdown">
  <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
    Dropdown
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
    <li><a href="#">Action</a></li>
    <li><a href="#">Another action</a></li>
    <li><a href="#">Something else here</a></li>
    <li role="separator" class="divider"></li>
    <li><a href="#">Separated link</a></li>
  </ul>
</div>
<script src="{% static "js/jquery-3.6.0.min.js" %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.min.js' %}"></script>
<script>
    $(".dropdown-toggle").dropdown();
</script>
</body>
</html>
相关推荐
Pocker_Spades_A23 分钟前
在家写的代码,办公室接着改?Jupyter通过cpolar实现远程访问这么玩
ide·python·jupyter
m5655bj1 小时前
使用 Python 高效复制 Excel 行、列、单元格
开发语言·python·excel
龙言龙论1 小时前
身份证信息批量处理系统:从入门到实战(附exe工具+核心源码)
数据库·python
m0_626535201 小时前
代码分析 长音频分割为短音频
javascript·python·音视频
Wpa.wk2 小时前
自动化测试环境配置-java+python
java·开发语言·python·测试工具·自动化
带刺的坐椅2 小时前
AI 应用工作流:LangGraph 和 Solon AI Flow,我该选谁?
java·python·ai·solon·flow·langgraph
工业互联网专业2 小时前
图片推荐系统_django+spider
python·django·毕业设计·源码·课程设计·spider·图片推荐系统
Lwcah2 小时前
Python | LGBM+SHAP可解释性分析回归预测及可视化算法
python·算法·回归
@一辈子爱你3 小时前
归来九十余日:在时代的夹缝中,与你共筑一道光
python
HsuHeinrich3 小时前
利用面积图探索历史温度的变化趋势
python·数据可视化