• Django学习笔记(2)简单实现一个网站


    默认使用了一个user模块,创建的django项目名为dj_test

    1.user文件下,models.py中写上创建Category数据库表

    #user.models   content
    from django.db import models
    
    # Create your models here.
    #注:每创建一个table,系统默认第一个字段id,自动新增,无需再次新增
    class Category(models.Model):#类名就是表名
        name = models.CharField(verbose_name='分类名',max_length=50,unique=True)#定义字符字段name
        creat_time = models.DateTimeField(verbose_name='创建时间',auto_now_add=True)#datetime字段create_time
        update_time = models.DateTimeField(verbose_name='修改时间',auto_now=True)
        is_delete= models.BooleanField(verbose_name="是否删除",default=False)
    
        class Meta:#Meta用来自定义表内容
            db_table = 'category'#自定义table名称
            ordering=['-creat_time']#定义排序按照xxx字段排序,默认升序,加减号表示降序
            verbose_name = '文章分类'#定义模型中的名称,用于后台管理操作方便
            verbose_name_plural = verbose_name#定义复数名词,不然系统会自动在verbose_name后面加s,如'文章分类s'
    
        def __str__(self):#默认返回系统对象名,需要重新命名来识别
            return self.name

    2.执行python manage.py makemigrations    #生成迁移文件,创建表结构

    3.执行python manage.py migrate    #同步到数据库,生成数据库表

      执行2和3操作后,user下方同级目录会生成一个db.sqlite3的文件,右击copy path(绝对路径),复制到navicat或者pycharm自带数据库连接工具上,检查数据库结构

    4.启用admin管理工具,在管理平台添加数据

      在user-admin.py中,将Category表注册到admin后台,user  admin.py添加注册代码

    # user admin.py content
    from django.contrib import admin
    
    # Register your models here.
    #激活测试管理工具,需要先将category表注册到管理工具上
    from . import  models
    admin.site.register(models.Category)

      

    在浏览器输入http://127.0.0.1:8000/admin/  进入管理工具页面。此时没有账户和密码,需要在命令行执行python manage.py createsuperuser  来创建超级用户,设置账户和密码

    进入管理平台后,可以手动页面上添加和修改数据,无需直接去操作数据库,

    注意:每次新增/修改/删除等操作,都需要执行python manage.py makemigrations 和 python manage.py migrate语句

    5.在user   view.py中定义index方法

     1 import datetime
     2 
     3 from django.shortcuts import render
     4 
     5 from .models import Category
     6 # Create your views here.
     7 def index(request):
     8     catagories = Category.objects.all()#获取所有数据
     9     print(catagories)
    10     time = datetime.datetime.now()
    11     data = {'nav':catagories,'time':time}
    12     return render(request,'index.html',data)#引用数据需要通过字典data引用

    6.在user上方统计目录templates中创建index.html文件
     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Django</title>
     6 </head>
     7 <body>
     8     <h1>欢迎光临!今天的日期是{{ time }}</h1>
     9 <ul>
    10     {% for n in nav %}
    11         <li>{{ n }}</li>
    12     {% endfor %}
    13 </ul>
    14 </body>
    15 </html>

    7.dj_test目录下的urls.py,需要添加步骤5view.py定义的index方法

    1 from django.contrib import admin
    2 from django.urls import path
    3 from user.views import index
    4 
    5 urlpatterns = [
    6     path('admin/', admin.site.urls),
    7     path('index/', index),#第二个参数index 指的是view.py中定义的index方法
    8 ]

    8.在浏览器中输入http://127.0.0.1:8000/index/ ,即可查看

  • 相关阅读:
    显示磁盘信息
    给VG增加磁盘,给文件目录增加空间
    第8.11节 Python类中记录实例变量属性的特殊变量__dict__
    Python中format_map与format字符串格式化的区别
    生成器函数与函数的区别
    什么是Python生成器?与迭代器的关系是什么?
    第8.10节 使用__class__查看Python中实例对应的类
    Python运算符的优先级是怎样的?
    Python怎么控制将一个整数输出成指定长的十六进制数?
    Python中函数的参数带星号是什么意思?
  • 原文地址:https://www.cnblogs.com/bugoobird/p/13307184.html
Copyright © 2020-2023  润新知