1.安装django
pip install django
c:\python39
-python.exe
-Scripts
-pip.exe
-django-admin.exe[工具,创建django项目中的文件和文件夹]
-Lib
-内置模块
-site-packages
-openpyxl
-python-docx
-flask
-django [框架的源码]
2.创建项目
django中项目会有一些默认的文件和默认的文件夹
2.1在终端
2.2 Pycharm
注意:
- python解释器安装目录:c:\python39\python.exe lib....不要将项目放到此目录
- F:\pycode\(基于Django创建项目)
特殊说明:
- 命令行,创建的项目是标准的
- pycharm,在标准的基础上默认加了东西
- 创建了一个templates目录(删除)
- settings.py中[删除’DIRS’后面的参数]
默认项目的文件介绍:
│ manage.py [项目管理,启动项目、创建app、数据库管理][不要动][常常用]
│
└─mysite
asgi.py [接收网络请求] [不要动]
settings.py [项目配置] [常常修改]
urls.py [URL和函数的对应关系] [常常修改]
wsgi.py [接收网络请求] [不要动]
__init__.py
3.创建APP
-项目
- app 用户管理 [表结构、函数、HTML模板、css]
- app 订单管理 [表结构、函数、HTML模板、css]
- app 后台管理 [表结构、函数、HTML模板、css]
- app 网站 [表结构、函数、HTML模板、css]
- app API [表结构、函数、HTML模板、css]
..
注意:我们开发比较简洁,不需要多个app
├─app01
│ │ admin.py [固定,不用动]django默认提供了admin后台管理
│ │ apps.py [固定,不用动]app启动类
│ │ models.py [重要]对数据库操作
│ │ tests.py
│ │ views.py [重要]函数
│ │ __init__.py
│ │
│ └─migrations [固定,不用动]单元测试
│ __init__.py
4.快速上手
-
启动django项目
-
命令行启动
-
pycharm
4.1再写一个页面
4.2templates模板
4.3静态文件
在开发过程中一般将:
都会当成静态文件
4.3.1 static目录
在app目录下创建static文件夹
4.3.2引用静态文件
这里的斜杠反了
5.模板语法
本质上:在HTML中写一些占位符,由数据对这些占位符进行替换和处理
案例:伪联通新闻中心
6.请求和响应
关于重定向
案例:用户登录
7. 数据库操作
import pymysql
conn=pymysql.connect(host="127.0.0.1",post=3306,user='root',passwd='123456',charset='utf8',db='unicom')
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor。execute("insert into admin(username,password,mobile) values('wupeiqi','qwe123','15515555555')")
conn.commit()
cursor.close()
conn.close()
7.1安装第三方模块
pip install mysqlclient
7.2ORM
ORM可以帮助我们做两件事
- 创建、修改、删除数据库中的表(不用你写sql语句)。[无法创建数据库]
- 操作表中的数据(不用写sql语句)。
1.创建数据库
create batabase gx_day15 DEFAULT CHARSERT ust8 COLLATE utf8_general_ci;
2.Django连接数据库
在serrings.py修改文件
3.django操作表
创建表:在models.py文件中
create table app01_userinfo(
id bigint aut_increment primary key ,
name varchar (32),
password varchar (64),
age int
)
执行命令:app需要提前注册
python manage.py makemigrations
python manage.py migrate
在表中新增列时,由于已存在列中可能已有数据,所以新增列必须指定列对应的数据:
size=models.IntegerField(default=2)
date=models.IntegerField(null=True,blank=True)
以后在开发中如果想要对表结构进行调整:
python manage.py makemigrations
python manage.py migrate
4. 操作表中的数据
#测试ORM操作表中的数据
#1.新建
# models.Department.objects.create(title="销售部")
# models.Department.objects.create(title="IT部")
# models.Department.objects.create(title="运营部")
# models.UserInfo.objects.create(name='wu',password='123',age=19)
# models.UserInfo.objects.create(name='zhu',password='333',age=12)
#2.删除
# models.UserInfo.objects.filter(id=3).delete()
# models.Department.objects.all().delete()
#3.获取数据
#data_list=[对象,对象,对象] QuerySet类型
#获取符合条件的所有数据
# data_list=models.UserInfo.objects.all()
# for obj in data_list:
# print(obj.id,obj.nane,obj.passwrod,obj.age)
# data_list=[对象,对象,对象] QuerySet类型
# data_list=models.UserInfo.objects.filter(id=1)
# print(data_list)
#获取第一条数据【对象】
# row_obj=models.UserInfo.objects.filter(id=1).first()
# print(row_obj.id, row_obj.nane, row_obj.passwrod, row_obj.age)
#更新数据
# models.UserInfo.objects.all().update(passwrod=9999)
# models.UserInfo.objects.filter(id=2).update(passwrod=9999)
# models.UserInfo.objects.filter(name='zhu').update(age=34)
案例:用户管理
1.展示用户列表
2.添加用户
- url
- 函数
- GET,看到页面,输入内容
- POST,提交,写到数据库
3.删除用户
http://127.0.0.1:8000/info/delete/?nid=1
http://127.0.0.1:8000/info/delete/?nid=2
http://127.0.0.1:8000/info/delete/?nid=3
def 函数(request):
nid=request.GET.get("nid")
UserInfo.objects.filter(id=nid).delete()
return HttpResponse('删除成功')
|