Django项目开发快速入门

Django项目开发快速入门

    • 生成Django项目
    • 编写module
    • 后台管理系统admin
    • 自定义管理页面
    • 视图函数使用
    • Django模板

生成Django项目

  • 现在cmd中使用命令安装Django框架
pip install django==3.2
  • 使用命令生成项目
django-admin startproject DjStore
  • 使用命令生成应用
python .\manage.py startapp news
python .\manage.py startapp users

在项目的setting文件中注册
/DjStore/Djstore/setting.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    "news",
    "users"
]

编写module

/DjStore/news/models.py

"""
新闻表:
    ID:主键
    title:标题 字符串
    content:新闻内容 大文本
    b_data:新闻日期 日期
    read:阅读量 整数
模型类:必须继承 django.db.models.model类
"""


class NewsInfo(models.Model):
    title = models.CharField(max_length=30)
    content = models.TextField()
    b_date = models.DateTimeField()
    read = models.IntegerField()
  • 执行命名,生成mode
python .\manage.py makemigrations
Migrations for 'news':
  news\migrations\0001_initial.py
    - Create model NewsInfo
  • 生成对应的表结构
python .\manage.py migrate       
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, news, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying news.0001_initial... OK
  Applying sessions.0001_initial... OK

后台管理系统admin

/Djstore/news/admin.py

from django.contrib import admin
from .models import NewsInfo
# Register your models here.

admin.site.register(NewsInfo)
  • 启动项目
python .\manage.py runserver
  • 生成admin账号
python .\manage.py createsuperuser
account:qqg
password:123456
  • 网址:http://127.0.0.1:8000/admin/
    在这里插入图片描述

自定义管理页面

from django.contrib import admin
from .models import NewsInfo

# Register your models here.
# style1:直接显示
#admin.site.register(NewsInfo)


# style2:自定义显示
class NewsInfoAdmin(admin.ModelAdmin):
    list_display = ['id', 'title', 'b_date', 'read']


admin.site.register(NewsInfo, NewsInfoAdmin)
  • 进行对比
    在这里插入图片描述
    在这里插入图片描述

视图函数使用

/DjStore/news/view.py

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
"""
视图函数定义的基本要求:
    1、视图函数必须定义一个参数(通过命名为request)
        request参数:用来接受客户端的请求信息的
    2、视图函数的返回值必须是一个HttpResponse的对象(或者HttpResponse的子类对象)
"""
def index(request):
    res='this is a test'
    return HttpResponse(res)
  • 注册url
    /DjStore/DjStore/urls.py
from django.contrib import admin
from django.urls import path, include, re_path

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'^news/', include('news.urls'))
]

/DjStore/news/urls.py

from django.urls import path
from .views import index

# 配置路由规则
urlpatterns = [
    path('index', index)
]
  • 访问测试
    在这里插入图片描述
  • 使用测试
    /DjStore/news/urls.py
from django.urls import path
from .views import index,news_list

# 配置路由规则
urlpatterns = [
    path('index', index),
    path('list', news_list)
]

/DjStore/news/views.py

from django.shortcuts import render
from django.http import HttpResponse
from .models import NewsInfo

# Create your views here.
"""
视图函数定义的基本要求:
    1、视图函数必须定义一个参数(通过命名为request)
        request参数:用来接受客户端的请求信息的
    2、视图函数的返回值必须是一个HttpResponse的对象(或者HttpResponse的子类对象)
使用流程:
    1、在应用的views.py定义视图函数
    2、配置路由
        1)、在项目日录的UrLs,py中关联应用下的UrLs.py
        from django.contrib import admin
        from django.urls import path, include, re_path
        
        urlpatterns = [
            path('admin/', admin.site.urls),
            re_path(r'^news/', include('news.urls'))
        ]
        2)、在应用的目录下定义一个Urls.py文件(可以直接copy项目目录下的urls.py进来)
        3)、在应用的UrLs.py配置具体的访问规则
        from django.urls import path
        from .views import index
        
        # 配置路由规则
        urlpatterns = [
        # http://域名(ip:端口)/news/index
            path('index', index)
        ]
"""


def index(request):
    res = 'this is a test'
    return HttpResponse(res)


def news_list(request):
    datas = NewsInfo.objects.all()
    result = ''
    for item in datas:
        title = '<h1>{}</h1>'.format(item.title)
        result += title
    return HttpResponse(result)

在这里插入图片描述

Django模板

  • 创建目录/templates/news与/templates/users
  • 在/DjStore/DjStore/setting.py中设置
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        # 项目模板的路径
        'DIRS': [BASE_DIR / 'templates'],
        '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',
            ],
        },
    },
]
  • /templates/news下,创建list.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>新闻列表页面</title>
</head>
<body>
    <h1 style="color: red">新闻列表页面</h1>
    <ul>
        <li>python</li>
        <li>java</li>
        <li>js</li>
    </ul>
</body>
</html>
  • /DjStore/news/urls.py
from django.urls import path
from .views import index, news_list, list2

# 配置路由规则
urlpatterns = [
    path('index', index),
    path('list', news_list),
    path('list2', list2)
]
  • /DjStore/news/views.py
from django.shortcuts import render
from django.http import HttpResponse
from .models import NewsInfo

# Create your views here.
"""
def index(request):
    res = 'this is a test'
    return HttpResponse(res)
    
def news_list(request):
    datas = NewsInfo.objects.all()
    result = ''
    for item in datas:
        title = '<h1>{}</h1>'.format(item.title)
        result += title
    return HttpResponse(result)

# 视图中使用模板文件
def list2(request):
    return render(request, 'news/list.html')
  • 访问测试
    在这里插入图片描述

  • 模板配置和使用规则

    1. 在项目目录下创建一个templates文件夹
    2. 在setting.py中TEMPLATES:选项中配置项目模板的根路径
      ‘DIRS’[BASE_DIR ‘templates’]
    3. 在templates中创建和应用同名的文件夹
    4. 在templates下应用同名的文件夹中创建html模板页面
    5. 在views.py中定义视图函数,并返回html模板页面
    6. 配置路由访问规则
  • 模板使用

  • /DjStore/news/views.py

# 视图中使用模板文件
def list2(request):
    datas = NewsInfo.objects.all()
    item = datas[0]
    info = {
        "title": item.title,
        "content": item.content,
        "b_date": item.b_date,
        "read": item.read
    }
    return render(request, 'news/list.html', info)
  • /templates/news/list.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>新闻列表页面</title>
</head>
<body>
    <h1 style="color: red">{{ title }}</h1>
    <h4>发布日期:{{ b_date }},阅读量:{{ read }}</h4>
    <pre>{{ content }}</pre>
</body>
</html>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/38709.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安天逆向教程——常用汇编语句

一.汇编基础 二.条件分支 反汇编时更多关注这些条件分支。如果看懂这些条件分支&#xff0c;会对程序的大体逻辑有一个整体的了解。 至于程序里面的细节&#xff0c;有时会省略掉。往往关键的跳转理解了甚至进行一点点的改动&#xff0c;就会使得程序发生翻天覆地的变化。 三…

Android Jetpack Compose多平台用于Android和IOS

Android Jetpack Compose多平台用于Android和IOS JetBrains和外部开源贡献者已经努力工作了几年时间来开发Compose Multiplatform&#xff0c;并最近发布了适用于iOS的Alpha版本。自然地&#xff0c;我们对其功能进行了测试&#xff0c;并决定通过使用该框架在iOS上运行我们的…

排序算法总结

目录 插入排序和希尔排序 堆排序 归并排序 快速排序 桶排序、计数排序、基数排序 这些排序的比较 冒泡排序和选择排序就不说了&#xff0c;直接介绍下面的几种排序算法&#xff1a; 插入排序和希尔排序 插入排序与希尔排序_小白麋鹿的博客-CSDN博客https://blog.csdn.n…

C国演义 [第十二章]

第十二章 打家劫舍题目理解步骤dp数组递推公式初始化遍历顺序 代码 打家劫舍II题目理解步骤递推公式初始化遍历顺序 代码 打家劫舍 力扣链接 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋…

如何保证消息的可靠性+延迟队列(TTL+死信队列+延迟队列)

目录 1.如何保证消息的可靠性 1.1.消息的可靠投递 confirm机制 return机制 1.2.如何保证消息在队列中不丢失 1.3.确保消息能可靠的被消费掉 2.延迟队列 2.1.TTL 2.2.死信队列 2.3.延迟队列 3.如何防止消费者重复消费消息 1.如何保证消息的可靠性 1.1.消息的可靠投递…

VMware扩展磁盘提示:在部分链上无法执行所调用的函数。请打开父虚拟磁盘

VMware扩展磁盘提示&#xff1a;在部分链上无法执行所调用的函数。请打开父虚拟磁盘 在为VMware中的虚拟机扩展磁盘时提示&#xff1a;在部分链上无法执行所调用的函数。请打开父虚拟磁盘。 出现这个问题是因为你先前创建过快照&#xff0c;但是快照删除时候&#xff0c;残余文…

【数据结构】链表及无头单向非循环链表实现

目录 1.顺序表的问题 2.链表的概念、结构及分类 3.无头单向非循环链表实现 3.1创建节点 3.2头插数据 3.3头删数据 3.4尾插 3.5尾删 3.6链表销毁 3.7查找一个元素 3.8在pos之前插入 3.9在pos之后插入 3.10删除pos位置 3.11删除pos之后的位置 1.顺序表的问题 顺…

Linux操作系统——第五章 进程信号

目录 信号概念 用kill -l命令可以察看系统定义的信号列表 信号处理常见方式概览 产生信号 1. 通过终端按键产生信号 2. 调用系统函数向进程发信号 3. 由软件条件产生信号 4. 硬件异常产生信号 阻塞信号 1. 信号其他相关常见概念 2. 在内核中的表示 3. sigset_t 4.…

C语言——指针详解(进阶)

轻松学会C语言指针 一、字符指针二、数组指针2.1 数组指针的定义2.2 &数组名VS数组名2.3 数组指针的使用 三、指针数组四、数组参数和指针参数4.1 一维数组传参4.2 二维数组传参4.3 一级指针传参4.4 二级指针传参 五、函数指针六、函数指针数组七、指向函数指针数组的指针八…

Kubernetes - HPA-VPA - metrics介绍和安装 - HPA实验

目录 参考文章&#xff1a;(97条消息) Kubernetes-自动扩展器HPA、VPA、CA_hpa vpa_SRE运维充电站的博客-CSDN博客 HPA VPA 官方网址&#xff1a;autoscaler/vertical-pod-autoscaler at master kubernetes/autoscaler GitHub HPA和VPA进行扩缩容的区别&#xff1a; me…

小研究 - 面向 Java 的高对抗内存型 Webshell 检测技术(四)

由于 Web 应用程序的复杂性和重要性, 导致其成为网络攻击的主要目标之一。攻击者在入侵一个网站后, 通常会植入一个 Webshell, 来持久化控制网站。但随着攻防双方的博弈, 各种检测技术、终端安全产品被广泛应用, 使得传统的以文件形式驻留的 Webshell 越来越容易被检测到, 内存…

《TCP IP网络编程》第七章

第七章&#xff1a;优雅的断开套接字的连接 TCP 的断开连接过程比建立连接更重要&#xff0c;因为连接过程中一般不会出现大问题&#xff0c;但是断开过程可能发生预想不到的情况。因此应该准确掌控。所以要掌握半关闭&#xff08;Half-close&#xff09;&#xff0c;才能明确断…

windows10 搭建hadoop环境,并且使用hadoop命令

hadoop 环境创建 1. 八、window搭建spark IDEA开发环境 按照步骤安装完 2. windows下安装和配置hadoop 配置环境变量&#xff0c;注意JAVA_HOME路径&#xff0c;修改后&#xff0c;重启电脑&#xff0c;不重启容易报错&#xff01;&#xff01;&#xff01; ​ 新建dat…

数据结构(王道)——数据结构之 二叉树

一、数据结构之 二叉树概念&#xff1a; 特殊的二叉树结构&#xff1a; 满二叉树完全二叉树 二叉排序树 平衡二叉树 二叉树基本概念总结&#xff1a; 二、二叉树的常用性质&#xff1a; 1、叶子结点比二分支结点多一个

Kubernetes - kubeadm部署

Kubernetes - kubeadm部署 1 环境准备1.1 在各个节点上配置主机名&#xff0c;并配置 Hosts 文件1.2 关闭防护墙&#xff0c;禁用selinux&#xff0c;关闭swap1.3 配置免密登录1.4 配置内核参数1.5 配置br_netfilter 2. 安装K8s2.1 安装docker(各节点)2.2 安装K8s组件(各节点)2…

走进Vue2飞入Vue3

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; Vue ✨特色专栏&#xff…

“掌握更多的快速排序技巧:三路划分、双路快排和非递归的深入理解”

快速排序是一种基于分治思想的排序算法&#xff0c;它能够以极快的速度将一个乱序的数组重新排列成有序的序列。不仅如此&#xff0c;快速排序还具有简洁的实现代码和良好的可扩展性&#xff0c;成为最受欢迎的排序算法之一。接下来&#xff0c;让我带你了解一下它的魅力吧&…

【Matlab】智能优化算法_麻雀搜索算法SSA

【Matlab】智能优化算法_麻雀搜索算法SSA 1.背景介绍2.数学模型3.文件结构4.伪代码5.详细代码及注释5.1 Get_Functions_details.m5.2 main.m5.3 SSA.m 6.运行结果7.参考文献 1.背景介绍 麻雀通常是群居的鸟类&#xff0c;有很多种类。它们分布在世界的大部分地区&#xff0c;喜…

Http host 标头攻击

一、什么是http host 标头攻击 HTTP Host 标头攻击是一种网络安全攻击技术&#xff0c;利用了 HTTP 协议中的 Host 标头字段的漏洞。Host 标头字段用于指定客户端请求的目标主机名或域名。 攻击者可以通过构造恶意的 HTTP 请求&#xff0c;伪造或篡改 Host 标头字段的值&#x…

高精尖领域数据暴增,分布式存储渐当大任

近年来&#xff0c;数据存储市场“最靓的仔”无疑就是分布式存储。 大模型火了之后&#xff0c;围绕Chat的应用也越来越多&#xff0c;通过AI生成图片、报表、音视频的应用比比皆是。众所周知&#xff0c;要想训练出一个有学习能力的、可理解的、响应迅速的大模型应用&#xf…