1.安装django
pip install django
? python 路径下的Scripts/django-admin.exe 是工具,用于创建django项目中的文件和文件夹。
? 而Lib/site/packages/django 是框架的源码,用时需要导入。
2.创建项目
django项目中会有一些默认的文件和文件夹。
2.1 在终端
-
打开终端 -
进入目录 D:\A_Documents\Django2022\project-folder -
执行命令,创建项目 "C:\Users\Zhai yanbo\AppData\Local\Programs\Python\Python310\Scripts\django-admin.exe" startproject 项目名称
# 如果python路径已加入系统环境变量
django-admin startproject 项目名称
django-admin startproject mysite
创建的项目如下:
2.1 Pycharm创建
说明:
3.创建APP
- 项目
- app,功能1[表结构、函数、html模板、css]
- app,功能2
- app,网站
- app,API
..
初步学习的开发比较简单,没目前还用不到多app
创建app:
# 先进入 mysite 目录
python manage.py startapp app
app目录下文件介绍:
主要了解models.py 与views.py 两个文件:
4.快速上手
4.1 再写一个页面
- url -> 函数
- 视图函数
上述配置做完后,添加函数只需再在mysite/urls.py 文件中添加url与函数的对应关系;然后在app/views.py 文件中编辑函数即可。
4.2 templates模板
在app 目录下创建templates 目录,然后在里面创建html 文件,在view文件中可以使用render 函数返回一个html文件.
def user_list(request):
return render(request,"user_list.html")
4.3 静态文件
一般将图片、js文件、css文件当作静态文件处理。
在app 目录下创建一个static 用于存放静态文件:
-static
- css
- img
- js
- plugins
4.3.1 在app目录下创建static文件夹。
4.3.2 引用静态文件
5.模板语法
本质上:在html中写一些占位符,由数据对这些占位符进行替代和转换。
案例:伪联通新闻中心
6.请求和相应
3个请求与3个响应:
def something(request):
print(request.method)
print(request.GET)
print(request.POST)
return redirect("https://www.baidu.com")
案例:用户登录
Django中的form表单中记得写{% csrf_token %} ,否则会提交不成功,这是Django框架中的自带的安全手段。
7.数据库操作
-
MySQL数据库+pymysql import pymysql
conn = pymysql.connect(host="127.0.0.1",port=3306,user='root')
passwd = "root123",cahrset="utf8",db="unicom"
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("insert into admin(username,password,mobile) values('wupeiqi','qwe123','1515555555')")
conn.commit()
cursor.close()
conn.close()
-
Django开发不再使用复杂的pymysql ,操作数据库更简单,内部提供了orm框架。
7.1 安装第三方模块
pip install mysqlclient
7.2 ORM
ORM可以帮助我们做两件事:
- 创建、修改、删除数据库中的表(不用自己写sql语句)。【无法创建数据库】
- 操作表中的数据(不用写sql语句)
1.自己创建数据库
2.Django连接数据库
在seetings.py文件中进行配置和修改。
Django中默认使用的是sqlite文件数据库,我们需要将其改为mysql数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'day15',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'bomagic'
}
}
3.django操作表
在models.py文件中:
from django.db import models
class UserInfo(models.Model):
name = models.CharField(max_length=32)
password = models.CharField(max_length=64)
age = models.IntegerField()
'''
上述语句相当于models执行sql语句:
create table app_UserInfo(
id bignit auto_increment primary_key,
name varchar(32),
password varchar(64),
age int
)
'''
use day15;
show tables;
发现day15 表中目前什么都没有。
执行命令:
python manage.py makemigrations
python manage.py migrate
注意:app需要提前注册,需要在项目根目录下执行该操作
use day15;
show tables;
desc app_userinfo;
在表中新增列时,由于已存在列中可能已有数据,所以新增列必须要指定默认数据:
-
1.手动输入一个值 -
2.设置默认值 age = models.IntegerField(default=2)
-
3.可以为空 data = models.IntegerField(null=True,blank=True)
以后在开发中想要对表结构进行调整,只需在model.py文件中操作类,然后再输入下面两条指令即可: python manage.py makemigrations
python manage.py migrate
4.操作表中的数据
增删改查操作:
def orm(request):
UserInfo.objects.filter(id=9).update(id=11)
data_list = UserInfo.objects.all()
for item in data_list:
print(item.name,item.password,item.age)
print(UserInfo.objects.filter(id=11).first().name)
return HttpResponse("操作成功")
案例:用户管理
1.展示用户列表
2.添加用户信息
- url
- 函数
- GET,看到页面,输入内容。
- POST,提交->写入到数据库。
3.删除用户
|