路由的设置
python manage.py startapp 名字
所有建立的应用,都需要到Django的setting中进行注册。
之后就可以在新建的应用中也建立一个urls.py,并建立路由
from django.conf.urls import url
from TwoApp import views
urlpatterns = [url(r'^app/',views.demo)]
然后把此文件通过include方法,放入总路由即可
Django下的urls.py
from django.conf.urls import url, include
from django.contrib import admin
from app import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
#在数组中可以加入路径,并使用views中的哪个方法
url(r'^sola/',views.solaDemo),
url(r'^index/',views.index),
url(r'^two/',include('TwoApp.urls'))
]
数据库
在app中的model建立模型,并写入字段
然后通过命令,生成miagrations下的建表文件
python manage.py makemigrations
生成文件内容
再进行执行建表命令(执行建表命令时,前提是在setting中配置好数据库并连接成功)
python manage.py migrate
即生成表
通过views中可以编写逻辑代码进行保存
from django.http import HttpResponse
from django.shortcuts import render
from app.models import Student
# Create your views here.
#默认参数需要写入requset
def solaDemo(request):
#通过Response写回响应值
return HttpResponse("solaDemo")
def index(request):
return render(request,"index.html")
def addStu(request):
student = Student()
student.s_name = "sola2"
student.s_age = "99"
student.s_des = "PY交易"
student.save()
return HttpResponse("success")
写完逻辑代码在路由中添加此方法,即可录入地址进行调用
例:http://127.0.0.1:8000/addStu/ 即可调用进行存储,表中已经插入成功
简单查询
def getStu(request):
students = Student.objects.all()
print(students)
for student in students:
print(student.s_name)
return HttpResponse("success")
页面数据渲染
当我们有了这些数据,可以获取出来在html页面中动态渲染一下。
首先我们在方法中先用render方法传入request,要渲染的HTML,与一个字典,再在逻辑里给字典赋值就可以传给html
def getStu(request):
students = Student.objects.all()
print(students)
for student in students:
print(student.s_name)
#可以通过赋值字典值,传入到HTML,再用key来获取
context = {
"name":"sola",
"lover":"rui",
"students":students
}
return render(request,"studentlist.html",context=context)
再到html进行取值即可完成
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>学生数据</title>
</head>
<body>
<h1>{{ name }}</h1>
<h1>{{ lover }}</h1>
<h1>StudentList</h1>
<ul>
{% for student in students %}
<li>{{ student.s_name }}</li>
{% endfor %}
</ul>
</body>
</html>
数据更新
def updateStu(request):
#要更新某条数据需要先查询,首先可以通过主键查询某条数据
student = Student.objects.get(pk=2)
print(student.s_name)
student.s_name = "updateSola2"
student.save()
return HttpResponse("Success")
数据删除
def deleteStu(request):
# 要删除需要先查询,首先可以通过主键查询某条数据
student = Student.objects.get(pk=2)
student.delete()
return HttpResponse("Success")
当想要更改数据库时,需要修改setting中的数据库配置即可,下面演示更改MySql
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE':'django.db.backends.mysql',
'NAME':'TESTdatabase',
'USER':'root',
'PASSWORD':'root',
'HOST':'127.0.0.1',
'PORT':'3306'
}
}