1.创建虚拟环境
python -m venv venv
2.安装django3.2
pip install django==3.2
3.创建项目
django-admin startproject mysite
4.APP概念
-项目
--app 用户管理(表结构,函数,HTML模板,css)
--app 订单管理(表结构,函数,HTML模板,css)
--app 后台管理(表结构,函数,HTML模板,css)
--app 网站(表结构,函数,HTML模板,css)
--app API(表结构,函数,HTML模板,css)
注意:我们开发比较简洁,用不到多app,一般情况下,项目下创建1个app即可
5.创建app
python manage.py startapp app01
6.注册app
- /mysite/mysite/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config'
]
6.编写URL和视图函数对应关系 urls.py
- /mysite/mysite/urls.py
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
#www.xxx.com/index/->函数
path('index/', views.index),
]
7.编写视图函数 【views.py】
- /mysite/app01/views.py
from django.shortcuts import render,HttpResponse
# Create your views here.
def index(request):
return HttpResponse("欢迎使用")
8.启动项目
python manage.py runserver
9.增加页面
- /mysite/mysite/urls.py
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
#www.xxx.com/index/->函数
path('index/', views.index),
path('user/list/', views.user_list),
path('user/add/', views.user_add),
]
- /mysite/app01/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_add(request):
return HttpResponse("添加用户")
10.templates模板
-
/mysite/app01/templates
-
/mysite/app01/views.py
from django.shortcuts import render,HttpResponse
# Create your views here.
def index(request):
return HttpResponse("欢迎使用")
def user_list(request):
# 标准命令行创建的django项目settings.py TEMPLATES下的DIRS为空[]
# 1.去app目录下的templates目录寻找user_list.html
# 根据app的注册顺序,逐一去他们的templates目录中找,假如app01没有这个html文件,就会寻找app02 ...
#用pycharm创建的django项目settings.py TEMPLATES下的DIRS为[os.path.join(BASE_DIR,'templates')]
# 1.优先去项目根目录的templates中寻找
# 2.根据app的注册顺序,逐一去他们的templates目录中找
return HttpResponse(request,"user_list.html")
def user_add(request):
return HttpResponse(request,"user_add.html")
11.静态文件
在开发过程中一般将:
- 图片
- CSS
- js
都会当做静态文件处理
添加文件夹
- /mysite/app01/static
- /mysite/app01/static/css
- /mysite/app01/static/img
- /mysite/app01/static/js
- /mysite/app01/static/plugins
12.模板语法
13.请求和响应
def something(request):
#request是一个对象,封装了用户发送过来的所有请求相关数据
# 1.获取请求方式 GET/POST
print(request.method)
# 2.在URL上传递值 /something/?n1=123&n2=999
print(request.GET)
# 3.在请求体中提交数据
print(request.POST)
# 4.【响应】在请求体中提交数据
# return HttpResponse("返回内容")
# 5.【响应】读取HTML的内容+渲染(替换) ->字符串,返回给用户浏览器
#return render(request,'something.html',{'title':"来了"})
# 6.【响应】重定向
#return redirect("http://www.baidu.com")