Django的入门(一)配置路由、html加载数据库

本文介绍了Django项目的配置过程,包括在views.py中编写视图类处理GET和POST请求,url.py中配置路由,模板文件的设置,以及如何使HTML加载数据库内容。通过manage.py shell进行测试,确保数据库操作正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置完Django后运行服务器,然后开始创建自己的视图并设置url链接

在views.py写内容:

在这里插入图片描述

视图类来区分get和post请求:

views.py文件写类

from django.views import View
# 继承于django.view:View
class UserInfo(View):
    # 返回所有的get请求,这里返回用户信息
    def get(self, request):
        return HttpResponse('ok')

    def post(self):
        pass

urls.py写跳转逻辑:

urlpatterns = [
    url(r'^userinfo/', UserInfo.as_view()),

]

在url.py配置链接,配置路由方法一

这种是简单直接的导入:
在这里插入图片描述

配置路由方法二(分模块,更常用的方法)

路由可能会过多,所以就有第二种方法,按模块配置路由即分模块再集中.

  • 在项目所在的同名文件夹的urls里面配置include(将各个模块的URL加载)
  • 在各个模块的URL里面配置URL-VIEWS

在这里插入图片描述
然后在views.py添加一个函数即页面:


def index(request):
    return HttpResponse('第二种方法匹配出的index界面')

然后创建urls.py,写内容:
在这里插入图片描述

配置模板文件

接下来是返回网页内容:

  • 先创建一个文件夹templates
  • 配置文件夹的查找路径,在setting.py里找到’DIRS’:[]
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [], 
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

然后进行拼接,可以自己print看看是否拼接成功

'DIRS': [os.path.join(BASE_DIR, 'templates')],

配置好之后,新建一个html文件,随便写点什么,然后在user/views.py进行配置:
在这里插入图片描述

html加载数据库的内容

同上文操作,在urls.py添加

urlpatterns = [
    url(r'^index/', index),
    url(r'^userinfo/', userinfo),
    url(r'^show_userinfos/', show_userinfos)
]

在views.py添加:

def show_userinfos(request):
    # 查找所有的用户信息
    from user.models import UserInfo
    try:
        # 取出所有的数据
        # data = UserInfo.objects.all()
        print('这里打印的是所有的用户信息')
        # data = UserInfo.objects.get(id=1) # 一条数据
        # data = UserInfo.objects.count()  # 计数

        # 查找id不等于1的userinfo
        # __gt代表大于 __lt代表小于  __lte小于等于
        # 这些都返回列表对象
        # data = UserInfo.objects.filter(id__gt=1)

        # 查找带 小 的 
        # data = UserInfo.objects.filter(name__contains='小')

        # 查找姓王的人
        data = UserInfo.objects.filter(name__startswith='王')
    except:
        data = '不存在'
    finally:
        pass

    print(data)
    # context是构造上下文,网页需要的数据,必须是字典结构
    context = {'datas': data}
    return render(request, 'showuserinfos.html', context)

在文件夹templates创建一个新的网页showuserinfo.html:
里面有新的语言来提取数据库内容,要另外学习

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>userinfos</h1>

<ul>
        {{ datas }}
{#    {%  for obj in datas %}#}
{#        <li>{{ obj.name }}</li>#}
{#        <li>{{ obj.phone }}</li>#}
{#        <li>{{ obj.addkey }}</li>#}
{#    {% endfor %}#}

</ul>
</body>
</html>

manage.py shell测试

进入环境以及文件夹之后,可以shell调试,记住写完之后要save()

>>> from user.models import *
>>> add = AddressInfo()
>>> add.add = '广州'
>>> add.save()
>>> user=UserInfo()
>>> user.name='白小姐'
>>> user.phone=18814882311
>>> user.addkey=add    
>>> user.save()
>>> 
>>> UserInfo.objects.all() 
>>> add.userinfo_set.all()

>>> from user.models import AddressInfo
>>> AddressInfo.objects.create(add='深圳')
<AddressInfo: 深圳>
>>> AddressInfo.objects.all()
<QuerySet [<AddressInfo: 苏州>, <AddressInfo: 杭州>, <AddressInfo: 上海>, <AddressInfo: 广州>, <AddressInfo: 深圳>]>


这里外键的添加方式是一个实例对象,即直接对象赋值给外键,

UserInfo.objects.all() // 这个是查询所有
add.userinfo_set.all() // 根据对象的外键查询
AddressInfo.objects.create(add=‘深圳’) // 添加表属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值