引言
在当今数字化的时代,Web 开发的浪潮正汹涌澎湃,而 Django 作为 Python 世界里一款强大且高效的 Web 框架,无疑是众多开发者的心头好。它凭借着简洁的代码风格、丰富的内置功能和高效的开发效率,让开发者能够轻松应对各种复杂的 Web 开发任务。
你是否曾经渴望搭建一个属于自己的 Web 应用,却被繁琐的项目搭建和页面开发过程弄得晕头转向?又或者你已经对 Django 有了一些初步的了解,但在实际操作中却总是遇到各种问题,不知道如何将想法变成现实?别担心,今天这篇博客将为你揭开 Django 开发的神秘面纱,带你从项目的安装与创建开始,一步一步深入了解项目架构、App 的创建与使用,最终实现多页面应用的开发。无论你是 Web 开发的新手小白,还是想要提升技能的进阶开发者,相信这篇文章都能为你带来满满的干货和实用的技巧。让我们一起开启这段精彩的 Django 开发之旅吧!
Django
1.初识Django:
2.安装Django:
pip install django django-admin.exe 【工具、创建django项目的文件和文件夹】
第三方模块
3.创建项目:
见文章:VScode上的Vue+Django(Python)-CSDN博客
创建步骤:
-
打开终端
-
进入某个目录(项目存放位置)
-
执行创建项目命令:
4.开始使用项目:
4.1了解项目架构中各文件用处:
Security_System_project Security_System_project > _pycache _init _. py asgi.py【创建网络请求,{不用动}】 settings.py 【项目的配置文件,{经常操作文件}】 urls.py【URL和Python函数的对应关系,{经常操作文件}】 wsgi.py【创建网络请求,{不用动}】 db.sqlite3 manage.py【项目管理:启动项目、创建app、数据管理{无需修改,不用动,经常用}】
settings.py:数据库连接操作等等。
4.2App
大功能拆分成为多个小的app
项目: -app 用户管理{存储表结构、存储函数、css} -app 订单管理{存储表结构、存储函数、css} -app API管理{存储表结构、存储函数、css} 。。。。 注意:开发比较简洁,用不到多app,一般情况,项目下创建1个app。
怎样创建app?
通过manage.py创建
在Windows系统中使用命令:
tree /f //用于以树的形式展示:目录及文件 tree //只展示目录
E:. │ db.sqlite3 │ manage.py │ ├─app_security │ │ admin.py 【固定不动】django提供的默认admin的后台管理 │ │ apps.py 【固定不动】app启动类 │ │ models.py 【重要】对数据库操作 │ │ tests.py 【固定不动】单元测试 │ │ views.py 【重要:编写对应网址地址所对应的视图函数】对应url.py │ │ __init__.py │ │ │ └─migrations 【固定不动】数据库变更记录 │ __init__.py │ └─Security_System_project │ asgi.py │ settings.py │ urls.py 【URL-》函数】 │ wsgi.py │ __init__.py │ └─__pycache__ settings.cpython-39.pyc urls.cpython-39.pyc wsgi.cpython-39.pyc __init__.cpython-39.pyc
4.3快速上手
首先得注册app:而这个操作如下所示:
参考上图:
-
需要再setting.py文件中的INSTALLED_APPS中注册实际创建的app对应的里面的class类
-
编写URL和view视图函数之间的关系【urls.py】
-
视图函数【views.py】:默认为空
4.4启动项目
使用命令:
python .\manage.py runserver
初次运行时出现以下错误:
就运行:
python manage.py migrate
然后再次运行第一条命令就可以成功了
示例:
首先我们要在setting.py文件中注册应用类:
然后在views.py文件中写一个视图函数:
def index(Request): return HttpResponse("你好,欢迎使用!")
接着在urls.py文件中引入相应路径的视图函数:
urlpatterns = [ path("admin/", admin.site.urls), path("index/", index, name="index"), ]
最后运行命令:
python .\manage.py runserver
结果如图所示:
因为还未做路由,所以不能自动跳转页面需要我们在网址中手动添加
结果如图:
至此我们已经能简单创建一个页面应用啦
提问:
from app_demo.views import index 所有的视图函数我都这样引入?会不会使得代码过于冗杂了?
这里提供两种方法:
-
批量导入
如果你在
urls.py
中需要引入多个视图函数,可以一次性导入多个:from app_demo.views import index, another_view, yet_another_view urlpatterns = [ path("index/", index, name="index"), path("another/", another_view, name="another"), path("yet_another/", yet_another_view, name="yet_another"), ]
-
模块化导入
如果你的视图函数很多,可以考虑将它们分组到不同的模块中,然后分别导入:
-
在
app_demo
应用中创建一个views
包(目录),并在其中创建多个模块,例如home_views.py
、admin_views.py
等。 -
在
urls.py
中分别导入这些模块中的视图函数:
from app_demo.views.home_views import index from app_demo.views.admin_views import admin_dashboard urlpatterns = [ path("index/", index, name="index"), path("admin/dashboard/", admin_dashboard, name="admin_dashboard"), ]
Demo_project/ ├── manage.py ├── app_demo/ │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── migrations/ │ ├── models.py │ ├── tests.py │ ├── views/ # 新创建的包(目录) │ │ ├── __init__.py │ │ ├── home_views.py # 例如按功能拆分的视图模块文件 │ │ └── other_views.py │ └── views.py # 原视图文件,也可按需保留或迁移内容 └── Demo_project/ ├── __init__.py ├── settings.py └── urls.py
-
多个页面:
# views.py from django.shortcuts import render,HttpResponse # Create your views here. def index(Request): return HttpResponse("你好,欢迎使用!") def user_list(Request): return HttpResponse("用户列表") def user_register(Request): return HttpResponse("用户注册") # urls.py from django.contrib import admin from django.urls import path from app_demo.views import index,user_list urlpatterns = [ path("admin/", admin.site.urls), path("index/", index, name="index"), path("user/user_list", user_list, name="user_list"), ]
通常都是先写# views.py中的页面函数,然后在在urls.py文件中引入路径
运行结果: