Python的web框架Django的多应用路由设置、简单数据库操作,页面数据渲染(2)

 路由的设置

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'
    }
}
发布了143 篇原创文章 · 获赞 255 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/jiulanhao/article/details/102727157