安装Django
pip install django
E:\Anaconda -python.exe -Scripts -pip.exe -django-admin.exe 【工具,创建django项目中的文件和文件夹】 -Lib -内置模块 -site-packages -openpyxl -python-docx -flask -django 【框架源码】
创建项目(命令)
- 打开终端
进入到某个目录里面(项目存放文件夹)
E: cd E:\python-project
执行命令创建项目
“E:\Anaconda\Scripts\django-admin.exe” startproject 项目名
如果E:\Anaconda\Scripts\已加入到环境变量,则
admin-django.exe startproject 项目名
- 创建项目
“E:\Anaconda\Scripts\django-admin.exe” startproject django_setup
Pycharm创建项目
注意:
-python解析器安装目录,
E:\Anaconda\python.exe lib …..(lib)是解释器文件。
-项目安装目录
E:\python-project
两种方式对比
- 命令行,创建的项目是标准的。
pycharm,在标准的基础上默认给咱们加了点东西
app,用户管理 【表结构、函数、HTML模板、CSS】
- app,订单管理 【表结构、函数、HTML模板、CSS】
- app,后台管理 【表结构、函数、HTML模板、CSS】
- app,网站 【表结构、函数、HTML模板、CSS】
- app,API 【表结构、函数、HTML模板、CSS】
注意:我们开发比较简洁,用不到多app,一般情况下,创建一个app即可。
:::
django项目的结构
快速上手
- 确保app已经注册【】
- 编写URL和视图函数对应关系【】
- 编写视图函数【views.py】
- 启动Django函数
命令行启动
:::tips
python manage.py runserver
:::
pycharm启动
:::tips
templates
绑定关系url -> views
静态文件
在开发过程中一般将
- 图片
- css
- js
4.3.1在app目录下创建static文件夹
4.3.2引用静态文件
在网站进行访问,直接在pycharm中打开html文件是不解析的。
5.模板语法
本质上:在HTML中写一些占位符,由数据对这些占位符进行处理 和替换
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>模板语法学习</h1>
<div>{{ n1 }}</div>
<div>{{ n2 }}</div>
<div>{{ n2.0 }}</div>
<div>{{ n2.1 }}</div>
<div>{{ n2.2 }}</div>
<div>
{% for item in n2 %}
<span>{{ item }}</span>
{% endfor %}
</div>
<hr/>
{{ n3 }}
{{ n3.name }}
{{ n3.salary }}
{{ n3.role }}
{# sd n3.keys键 n3.value 值 n3.item 对#}
{% for k,v in n3.items %}
<li>{{ k }}={{ v }}</li>
{% endfor %}
{{ n4.0 }}
{{ n4.0.name }}
{{ n4.0.role }}
{% for item in n4 %}
<div>{{ item.name }}</div>
<div>{{ item.salary }}</div>
{% endfor %}
{% if n1 == "小明" %}
<h1>大大大</h1>
{% elif n1 == "xxx" %}
<h1>嘀嘀嘀</h1>
{% else %}
<h1>嘟嘟嘟</h1>
{% endif %}
</body>
</html>
案例:伪联通中心
案例:请求 和响应
def something(request):
# request是一个对象,封装了用户发送过来的所有请求相关数据
# 1.获取请求方式
print(request.method)
#2.在url中传递值 /something/?n1=123&n2=999
print(request.GET)
#3.在请求体中提交数据
# print(request.POST)
#4【响应】HttpResponse("返回内容"),内容字符串内容返回后给请求者
# return HttpResponse
#5.【响应】读取HTML的内容 + 渲染(替换) -> 字符串,返回给用户浏览器
# return render(request, 'something.html')
# 6.【响应】 浏览器重定向
return redirect("https://www.baidu.com/")
案例:用户登录
在提交表单中加入CSRFtoken