目录
框架目录介绍
1、创建项目:startproject
django-admin startproject mysite # 创建一个mysite项目
目录结构:
mysite/
├── mysite/
│ ├── __init__.py # 一个空的文件,用它标识一个目录为 Python 的标准包。
│ ├── settings.py # Django 项目的配置文件,包括 Django 模块应用配置,数据库配置,模板配置等。
│ ├── urls.py # Django 项目的 URL 声明。
│ └── wsgi.py # 为 WSGI 兼容的 Web 服务器服务项目的切入点。
└── manage.py # 一个命令行工具,可以让你在使用 Django 项目时以不同的方式进行交互。
2、创建应用:startapp
python manage.py startapp app01 # 创建应用app01
目录结构:
mysite/
├── app01/
│ ├── __init__.py
│ ├── migrations # 用于记录 models 中数据的变更
│ ├── admin.py # 映射 models 中的数据到 Django 自带的 admin 后台
│ └── apps.py # 在新的 Django 版本中新增,用于应用程序的配置
│ ├── models.py # 创建应用程序数据表模型 数据库的相关操作
│ └── tests.py # Django 测试
└───- views.py # 控制向前端显示哪些数据
3、手动创建
点击菜单栏File ——> New Project ——>见如下图操作(操作完)——>create
路由系统
1、动态路由
方式一
http://127.0.0.1:8000/edit/?nid=12
path('edit/', views.edit),
def edit(request): return HttpResponse('编辑')
方式二
http://127.0.0.1:8000/edit/alex/
re_path('edit/(\w+)/', views.edit),
def index(request): user = ['alex','jack','cici'] return render(request,"index.html",{"user_list":user}) def edit(request,arg1): print(arg1) # 获取到arg1值 return HttpResponse('编辑')
<ul> {% for i in user_list %} <li>{{ i }} | <a href="/edit/{{ i }}">编辑</a> </li> {% endfor %} </ul>
2、路由分发
http://127.0.0.1:8000/app01/index/
前提:已创建项目demo,app名称为app01
demo.urls.py文件中:
from django.urls import include # 导入include urlpatterns = [ path('app01/', include('app01.urls')), ]
app.urls.py文件(从demo中复制url.py)中:
from django.urls import path,re_path from app01 import views urlpatterns = [ path('index/', views.index), re_path('edit/(\w+)/', views.edit), ]
注意:新版的Django中的path不能使用正则表达式,不然会找不到页面
解决方法:使用re_path
from django.urls import path,re_path # 导入re_path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index),
re_path('edit/(\w+)/', views.edit), # 将path改为re_path
]