zoukankan      html  css  js  c++  java
  • Django入门(二)

    这一节主要介绍django中的model,template模板。
    model是django自带的orm框架,下面我们来搭建一个博客网站,来看看是如何使用的。

    1.新建应用blog

    python manage.py startapp blog
    

    2.创建一个blog实体类
    进入blog/models.py,添加代码如下:

    from django.db import models
    
    # Create your models here.
    class Blog(models.Model):
        title = models.CharField(max_length=20)
        body = models.TextField()
        timestamp = models.DateTimeField()
    

    实体对象继承自models.Model类,我们可以通过这个类访问数据库,而不需要写SQL语句了,
    django自带了sqllite3数据库,可以再django_test/settings.py中看到。

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        }
    }
    

    3.将应用加入配置文件
    进入django_test/settings.py,找到INSTALLED_APPS,加入blog

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
    ]
    

    加入后,Django就可以通过Blog对象建表了

    4.django自动建表
    在根目录执行以下命令,记录model的更新:

    python manage.py makemigrations
    

    然后输入以下命令,推送到数据库,完成更新

    python manage.py migrate
    

    5.创建数据库web控制台后台管理员,web控制台管理者我们的models

    python manage.py createsuperuser
    

    6.将Blog实体注册到管理员,让管理员能够访问到
    打开blog/admin.py,加入以下代码:

    from .models import Blog #从当前目录的models.py中导入Blog类
    
    # Register your models here.
    admin.site.register(Blog)
    

    这样在后台就可以访问到Blog了

    7.启动服务

    python manage.py runserver
    

    8.访问models控制台
    浏览器输入: 127.0.0.1:8000/admin
    运行结果:

    9.在blog/文件夹下面新建一个目录,叫templates,存放html文件
    文件目录如下:

    10.新建网页,展示blog列表
    在blog/templates目录下新建一个bog_list.html模板文件

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>My Blog</title>
    </head>
    <body>
        {% for blog in blog_list %}
            <div>
                <h1>{{ blog.title }}</h1>
                <p>{{ blog.body }}</p>
                <span>{{ blog.timestamp }}</span>
            </div>
        {% endfor %}
    </body>
    </html>
    

    以上的网页在django中称作模板,可以再里面写很多动态元素,由django渲染后生成html

    11.在views.py中取出Blog对象,交给上面的html
    打开blog/views.py,加入代码如下:

    from django.shortcuts import render
    from .models import Blog
    # Create your views here.
    
    def blog_list(request):
        blog_list = Blog.objects.all()
        return render(request, 'blog_list.html', {'blog_list': blog_list})
    

    render的第一个参数是request,第二个是html模板,第三个是字典,也就是我们要传给html的参数

    12.配置到urls.py

    from django.conf.urls import url, include
    from django.contrib import admin
    from blog.views import blog_list
    
    urlpatterns = [
        url(r'^polls/', include('polls.urls')),
        url(r'^admin/', admin.site.urls),
        url(r'^blog/', blog_list),
    ]
    

    13.启动服务进行访问
    运行结果:

    14.总结
    1)新建一个app,要在settings.py中进行注册
    2)实体模型写在models.py中,一个实体类对应了数据库的一张表
    3)在views.py中我们可以通过实体类对数据库进行访问,不需要写SQL语句
    4)views.py获取的对象可以通过字典的形式传到template中,然后通过模板语言进行访问,动态生成html
    5)通过配置urls.py,将url和方法绑定起来

  • 相关阅读:
    day1记一次无列名注入
    无参数RCE
    ThinkPHP 5.x远程命令执行漏洞
    phpmyadmin4.8.1文件包含漏洞
    foreach循环导致变量覆盖
    绕过空格的报错注入
    布尔盲注payload补充
    php后台验证两种方式绕过
    CentOS yum 配置阿里镜像
    CentOS通过yum安装配置Java环境
  • 原文地址:https://www.cnblogs.com/shijingjing07/p/9050906.html
Copyright © 2011-2022 走看看