DJANGO_PART 1
文章目录
- DJANGO_PART 1
- 1. 安装DJANGO
- 2. 创建项目
- 3. APP概念
- 4. 快速上手
- 5. templates
- 6. 引入其它静态文件
- 7. 模板语法
- 8. 请求与响应
1. 安装DJANGO
安装语句:pip install django
2. 创建项目
django中项目会有一些默认的文件和默认的文件夹
-
终端创建
- 打开终端,进入某个目录(项目的地址)
- 执行命令创建项目:startproject ProjectName(如果已加入环境系统环境变量:django-admin startproject ProjectName)
-
PyCharm创建
-
注意:
-
选择项目目录(项目存放的地址,不是python安装的地址)
-
命令行创建的项目是标准的;pycharm在标准的基础上默认添加了:
-
templates目录(暂时不需要,可删除)
-
settings.py添加了一句(暂时不需要,可删除):
-
-
-
默认项目的文件介绍
- manage.py(项目的管理,启动项目、创建app、数据管理,一般不用动)
- djangoLearning(与项目文件同名的文件夹)
- __ init __.py
- settings.py(项目配置)
- urls.py(url和函数的对应关系)
- asgi.py(默认,接收网络请求,一般不用动)
- wsgi.py(默认,接收网络请求,一般不用动)
3. APP概念
举例:
- 项目
- app,用户管理
- app,订单管理
- app,后台管理
- …
一个项目往往有多个app,也可只有一个app
-
APP的创建:python manage.py startapp AppName
-
APP默认文件结构
- migrations(固定,一般不用动)(数据库变更记录)
- __ init __.py(固定,一般不用动)
- __ init __.py
- admin.py(固定,一般不用动)(django默认提供了admin后台管理)
- apps.py(固定,一般不用动)(app启动类)
- models.py(对数据库进行操作)
- tests.py(固定,一般不用动)(单元测试)
- views.py(一般在这里调用函数)
- migrations(固定,一般不用动)(数据库变更记录)
4. 快速上手
-
确保app已注册
-
编写url和视图函数对应关系
-
编写视图函数
-
启动项目
-
命令行启动:python manage.py runserver
-
pycharm启动:
-
打开链接:
-
再写一个页面:
-
5. templates
-
引入静态html页面
-
注意
- 优先去项目根目录的templates中寻找html文件(必须要提前先配置,不配置没有用)
- 根据app的注册顺序,在每个app下的templates目录中寻找
6. 引入其它静态文件
在开发过程中一般将图片、css、js、都当作静态文件处理
-
static目录:在app目录下创建static文件夹
-
引用静态文件
7. 模板语法
本质上就是:在HTML中写一些占位符,由数据对这些占位符进行替换和处理
-
字符串
-
列表
-
显示列表的单个元素:
<div> {{ list.1 }} </div>
-
遍历列表:
<div> {% for item in list %} <span>{{ item }}</span> {% endfor %} </div>
-
-
字典
-
显示整个字典:
<div> {{ dict }} </div>
-
显示字典的某个元素:
<div> <span>{{ dict.name }}</span> <span>{{ dict.age }}</span> <span>{{ dict.job }}</span> </div>
-
遍历字典:
<div> {% for k, v in dict.items %} <span>{{ k }} : {{ v }}</span> {% endfor %} </div>
-
-
模板语法也支持if语法
{% if dict.age == 18 %} <div>年龄为18岁</div> {% else %} <div>年龄不为18岁</div> {% endif %}
8. 请求与响应
-
请求
# request是一个对象,封装了用户发送过来的所有请求相关的数据 # 获取请求方式:GET/POST print(request.method) # 在url上传递值:http://localhost:8000/reqTest/?name=ausgelebt&age=18 print(request.GET) # 在请求体中传递数据 print(request.POST)
-
响应
# (响应)HttpResponse("word"),字符串内容返回给请求者 # return HttpResponse("返回内容") # (响应)读取html的内容,并渲染/替换 # return render(request, 'index.html') # (响应)让浏览器重定向到其它的页面 return redirect('https://www.baidu.com')