Django学习笔记
安装django
pip install django
创建APP
用django来写后端的时候,要把各个功能分散到各个创建好的APP去实现
在终端输入
python manage.py startapp app01(APP名称)
APP内部文件
admin.py django默认提供了admin后台管理
apps.py app启动类
models.py 对数据库进行操作
tests.py 单元测试
views.py 函数
模板和静态文件
模板
app下面创建templates来放模板
如果setting.py没有
'DIRS': [BASE_DIR / 'templates']
静态文件会根据app的注册顺序从各个app的templates目录中去找
如果有
会先从项目根目录下面找templates目录,根目录没有就根据app的注册顺序从各个app的templates目录中去找
静态文件
包括image,js,css,plugins
在app下创建static文件夹来存放静态文件
django特有语法
可以在html中
{% load static %}
引入static文件
html的路径引用可以是
<img src="{% static 'img/1.png' %}">
模板语法
def tpl(request):
name="Lee"
return render(request,'tpl.html',{"n1":name})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户列表</h1>
<div>{{ n1 }}</div>
</body>
</html>
pymysql
mysql> create database unicom DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
插入数据
create table admin(
id int not null auto_increment primary key,
username varchar(16) not null,
password varchar(64) not null,
mobile char(11) not null
)default charset=utf8;
import pymysql
conn=pymysql.connect(host="127.0.0.1",port=3306,user="root",charset="utf8",db='unicom')
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)
cursor.execute("insert into admin(username,password,mobile) values('yeke','2131','32423')")
conn.commit()
cursor.close()
conn.close()
使用占位符和元组
import pymysql
from pymysql import cursors
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", charset="utf8", db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql="insert into admin(username,password,mobile) values(%s,%s,%s)"
cursor.execute(sql,['yeke','1231','21321'])
conn.commit()
cursor.close()
conn.close()
起名
import pymysql
from pymysql import cursors
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", charset="utf8", db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql="insert into admin(username,password,mobile) values(%(n1)s,%(n2)s,%(n3)s)"
cursor.execute(sql,{"n1":'yeke',"n2":'1231',"n3":'21321'})
conn.commit()
cursor.close()
conn.close()
加输入
import pymysql
from pymysql import cursors
while True:
user=input("用户名:")
passwd=input("密码:")
mobile=input("手机号:")
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", charset="utf8", db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql="insert into admin(username,password,mobile) values(%s,%s,%s)"
cursor.execute(sql,[user,passwd,mobile])
conn.commit()
cursor.close()
conn.close()
查询数据
import pymysql
from pymysql import cursors
## 创建APP
conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", charset="utf8", db='unicom')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
sql="select * from admin"
cursor.execute(sql)
datalist=cursor.fetchall()
print(datalist)
conn.commit()
cursor.close()
conn.close()
ORM框架
是建立在pymsql,mysqlclient上面的
不需要写sql语句就可以操作数据库
配置mysql
安装mysqlclient
pip install mysqlclient
连接mysql要修改setting.py中数据库的配置
DATABASES = {
"default": {
"ENGINE": "django.db.backends.mysql",
"NAME": "django",
"USER": "root",
"PASSWORD": "root",
"HOST": "127.0.0.1",
"PORT": 3306,
}
}
确保配置正确,就可以了
在APP下的models.py中可以创建类
from django.db import models
# Create your models here.
class UserInfo(models.Model):
name=models.CharField(max_length=32)
password=models.CharField(max_length=32)
age=models.IntegerField()
manage.py
python mange.py makemigrations
python manage.py migrate