将templates目录先删除,再将setting.py中的TEMPLATES的DIRS选项删除
manage.py startapp app01 “app01.apps.App01Config”,
from django.shortcuts import render,HttpResponse
def index(request):
return HttpResponse("欢迎使用")
最后,在终端启动django项目:manage.py runserver
在app01下建立static的文件目录:css、js、img、plugins
推荐如下格式引入静态文件:
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>这是添加用户</title>
<link rel="stylesheet" href="{% static "/plugins/bootstrap-3.4.1-dist/css/bootstrap.css" %}">
</head>
<body>
<h1>用户列表</h1>
<input type="text" class="btn btn-primary" value="新建" />
{# <img src="/static/img/头像.png">#}
<img src="{% static 'img/头像.png' %}" alt="">
<script src="{% static '/plugins/bootstrap-3.4.1-dist/js/bootstrap.js' %} "></script>
<script src="{% static '/plugins/jQuery/jquery-3.7.1.min.js' %} "></script>
</body>
</html>
DATABASES = {
# 修改setting.py
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test1',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '127.0.0.1',
'PORT': 3306,
}
}
from django.shortcuts import render,HttpResponse
from django.db import models
class UserInfo(models.Model):
name=models.CharField(max_length=32)
password=models.CharField(max_length=64)
age=models.IntegerField(default=2)
# 新增列时必须指定新增列对应的数据
data=models.IntegerField(null=True,blank=True)
# 允许空值
然后在终端执行:manage.py makemigrations和manage.py migrate
pip install mysqlclient-2.2.0-cp311-cp311-win_amd64.whl
views.py
from django.shortcuts import render
from django.shortcuts import render, HttpResponse
from app01 import models
# !!记得引入models.py
from app01.models import Department, UserInfo
# 引入app01文件夹下的models.py的定义的类Department,UserInfo
def index(request):
return HttpResponse("欢迎使用")
def orm(request):
# !!注意要在终端执行迁移命令,成功创建models.py表后进行操作
# 新增数据:给models.py的Department类的title属性填入值
Department.objects.create(title="销售部")
Department.objects.create(title="IT部")
# # 新增数据:给models.py的UserInfo类的属性填入值
UserInfo.objects.create(name="Alice", password="123", age=23)
# 删除
# UserInfo.objects.filter(id=1).delete()
# Department.objects.all().delete()
# 获取数据
# data_list=[对象,行,行] QuerySet类型
# 获取第一条数据
# row_obj=UserInfo.objects.filter(id=1).first()
# print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)
# 查询结果会返回终端
data_list = UserInfo.objects.all()
for obj in data_list:
print(obj.id, obj.name, obj.password, obj.age)
# 更新数据
UserInfo.objects.all().update(password=999)
UserInfo.objects.filter(id=2).update(age=999)
UserInfo.objects.filter(name="Alice").update(age=20)
return HttpResponse("成功")
models.py
from django.db import models
# Create your models here.
from django.shortcuts import render,HttpResponse
from django.db import models
class UserInfo(models.Model):
name=models.CharField(max_length=32)
password=models.CharField(max_length=64)
age=models.IntegerField(default=2)
# 新增列时必须指定新增列对应的数据
data=models.IntegerField(null=True,blank=True)
# 允许空值
class Department(models.Model):
title=models.CharField(max_length=16)
项目笔记
在html中导入静态文件:{%load static%}
django静态文件的地址引用:hrep=“{%static ‘static中的二级目录的文件’%}”
js的
cmd转到指定文件夹:在文件夹内按Ctrl + L(选中路径),在路径上输入cmd ,立刻出现命令窗口且为当前路径
# 通过pymysql连接数据库
import pymysql
while True:
user = input("用户名:")
# 在终端输入Q时,结束运行
if user.upper() == 'Q':
break
pwd = input("密码:")
mobile = input("手机号:")
# 1.连接MySQL
conn = pymysql.connect(host="localhost", port=3306, user="root", password="root", database="test1", charset="utf8mb4")
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 2.发送指令(千万不要用字符串格式化去做SQL的拼接,安全隐患SQL注入)
sql = "insert into admin(username,password,mobile) values(%s,%s,%s)"
cursor.execute(sql, [user, pwd, mobile])
conn.commit()
# 3.关闭
cursor.close()
conn.close()