mysql的更换
在settings.py中 修改database 安装Django的mysql支持库 使用pymysql最好 截图
装库如果很慢,可以用豆瓣的源 pip install pymysql -i https://pypi.douban.com/simple
需要对pymysql进行伪装成 MysqlDB 在init.py文件中, import pymysql pymysql.install_as_MySqlDB()
mysql数据库的连接方式
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
'ENGINE': 'django.db.backends.mysql',
'HOST': 'localhost',
'USER': 'root',
'PASSWORD': 'meimei',
'NAME': 'DjangoModel',
'PORT': 3306,
}
}
新建一个APP名字three
记得要在settings.py中app中添加 新增的urls也需要在主APP中添加urls 测试原生的render方式渲染网页,类似os.read为文本格式然后渲染成网页
def index(request):
three_index=loader.get_template('three_index.html') #读取模板
context={
"student":"我是一个坑",
}
result=three_index.render(context=context) #读取的文件渲染
return HttpResponse(result) #将文本response
数据库外键的使用
class Grade(models.Model):
grade_name = models.CharField(max_length=20)
class Student(models.Model):
s_name = models.CharField(max_length=20)
s_grade = models.ForeignKey(Grade,on_delete=models.CASCADE)
注意新版本总必须加上on_delete=models.CASCADE 不然在python manage.py makemigrations时报错 TypeError: init() missing 1 required positional argument: ‘on_delete’
查年级的方式
def get_grade(request):
student=Student.objects.get(pk=4)
grade=student.s_grade #通过外键直接关联上关系
return HttpResponse("班级是 %s" % grade.grade_name)
通过年级查所有学生
def get_student(request):
grade=Grade.objects.get(pk=1)
students=grade.student_set.all() #获取1班的所有学生列表
context={
"students":students,
}
return render(request,'three_getstudent.html',context=context)
|