Django实践-02创建应用

news2024/9/24 21:22:58

文章目录

  • Django实践-02创建应用
    • Django介绍
    • Django项目构建
      • Django项目安装(前一篇已经装好):
    • 创建应用
      • 1. 创建app,执行下面的命令:
      • 2. 修改视图views.py
      • 3. 修改Django项目目录下的urls.py文件
      • 4.重新运行项目
      • 5. 基于模板完成页面开发
        • 1. 在项目目录下创建名为templates文件夹。
        • 2.添加模板页index.html。
        • 3.修改views.py文件,调用render函数渲染模板页。
        • 4.配置settings.py
        • 5.新运行项目或直接刷新页面查看
    • 总结

在这里插入图片描述

Django实践-02创建应用

官网:https://www.djangoproject.com/
博客:https://www.liujiangblog.com/
git:https://gitcode.net/mirrors/jackfrued/Python-100-Days

Django静态文件问题备注:
参考:
Django测试开发-20-settings.py中templates配置,使得APP下的模板以及根目录下的模板均可生效
解决django 多个APP时 static文件的问题

Django介绍

Django是一个免费的开源的python WEB框架,包括足够用的中间件,用户可以基于Django在几个小时内完成web应用程序从概念到启动。

Django项目构建

Django项目安装(前一篇已经装好):

# 安装依赖
python -m pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple
# 创建项目
django-admin startproject djangoproject
# 运行测试
python djangoproject\manage.py runserver
# 访问网址
127.0.0.1:8000

如果看到如下页面则代表安装成功
在这里插入图片描述
在项目中添加两个文件夹:templates和static,templates存放html文件,static存放静态文件,此处建议static下再新建三个文件夹:js,css和images,分别存放js文件,css文件和图片。

在settings.py中修改时区语言:

#LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'
#TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

在settings.py中修改静态路径

STATIC_URL = 'static/'
# 指定静态文件的存放路径,新增部分
STATICFILES_DIRS=[
    os.path.join(BASE_DIR,'static'),
    os.path.join(BASE_DIR),
]

创建应用

定位到djangoproject项目下

cd djangoproject

1. 创建app,执行下面的命令:

(vip3-django) E:\vscode\vip3-django\djangoproject>django-admin startapp first

到此目录如下
在这里插入图片描述

2. 修改视图views.py

修改应用目录下的视图文件views.py。

from django.http import HttpResponse
from random import sample
def show_index(request):
    fruits = [
        'Apple', 'Orange', 'Pitaya', 'Durian', 'Waxberry', 'Blueberry',
        'Grape', 'Peach', 'Pear', 'Banana', 'Watermelon', 'Mango'
    ]
    selected_fruits = sample(fruits, 3)
    content = '<h3>今天推荐的水果是:</h3>'
    content += '<hr>'
    content += '<ul>'
    for fruit in selected_fruits:
        content += f'<li>{fruit}</li>'
    content += '</ul>'
    return HttpResponse(content)
    # return HttpResponse('<h1>Hello, Django!</h1>')

3. 修改Django项目目录下的urls.py文件

修改Django项目目录下的urls.py文件,将视图函数和用户在浏览器中请求的路径对应。

from django.contrib import admin
from django.urls import path, include
from ..first import views as first_views


urlpatterns = [
    path('admin/', admin.site.urls),
    path('first/', first_views.show_index),
]

4.重新运行项目

python manage.py runserver

并打开浏览器中访问

http://127.0.0.1:8000/first/

在这里插入图片描述

5. 基于模板完成页面开发

通过拼接HTML代码的方式为浏览器生成动态内容的做法在实际开发中是无能接受的。这时可以基于一个模板页(MTV中的T),所谓模板页就是一个带占位符和模板指令的HTML页面。

Django框架中有一个名为render的便捷函数可以来完成渲染模板的操作。所谓的渲染就是用数据替换掉模板页中的模板指令和占位符,当然这里的渲染称为后端渲染,即在服务器端完成页面的渲染再输出到浏览器中。
使用模板页的步骤如下所示。

1. 在项目目录下创建名为templates文件夹。

在这里插入图片描述

2.添加模板页index.html。

说明:实际项目开发中,静态页由前端开发者提供,后端开发者需要将静态页修改为模板页,以便通过Python程序对其进行渲染,这种做法就是上面提到的后端渲染。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>首页</title>
        <style>
            #fruits {
                font-size: 1.25em;
            }
        </style>
    </head>
    <body>
        <h1>今天推荐的水果是:</h1>
        <hr>
        <ul id="fruits">
            {% for fruit in fruits %}
            <li>{{ fruit }}</li>
            {% endfor %}
        </ul>
    </body>
</html>

在上面的模板页中我们使用了{{ fruit }}这样的模板占位符语法,也使用了{% for %}这样的模板指令,这些都是Django模板语言(DTL)的一部分。关于模板语法和指令,大家可以看看官方文档。

3.修改views.py文件,调用render函数渲染模板页。

render函数的第一个参数是请求对象request,第二个参数是我们要渲染的模板页的名字,第三个参数是要渲染到页面上的数据,我们通过一个字典将数据交给模板页,字典中的键就是模板页中使用的模板指令或占位符中的变量名。

from random import sample

from django.shortcuts import render


def show_index(request):
    fruits = [
        'Apple', 'Orange', 'Pitaya', 'Durian', 'Waxberry', 'Blueberry',
        'Grape', 'Peach', 'Pear', 'Banana', 'Watermelon', 'Mango'
    ]
    selected_fruits = sample(fruits, 3)
    return render(request, 'index.html', {'fruits': selected_fruits})

4.配置settings.py

到此为止,视图函数中的render还无法找到模板文件index.html,需要修改settings.py文件,配置模板文件所在的路径。修改settings.py文件,找到TEMPLATES配置,修改其中的DIRS配置。

'DIRS': [os.path.join(BASE_DIR,'templates')],# 指定templates的路径

在这里插入图片描述

5.新运行项目或直接刷新页面查看

在这里插入图片描述

总结

本文主要是Django系列博客。本文是Django创建应用过程。
1.创建app
2.修改视图views.py
3.修改Django项目下的urls.py文件
4.创建templates目录,在templates目录下添加模板页index.html
5.配置settings.py
6.项目运行

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度包检测(DPI)详细介绍

以前不了解这个&#xff0c;一个应聘职位是这个方面的&#xff0c;就在网上收集这个资料&#xff0c;了解了这个方面的资料&#xff0c;其实&#xff0c;这个核心是自然语言识别。 目录 简介背景 流量识别 常用功能具体功能 做法特征识别架构举例部署方式 串接方式并接方式存…

Mac安装Redis后的配置

Mac安装Redis后的配置找到安装目录配置文件修改启动服务做测试连接找到安装目录 1.双击&#xff08;右键&#xff09;访达&#xff0c;点击前往文件夹进行查找&#xff0c;如下图所示 2.然后再如下图所示中找到如下路径&#xff1a; usr/local/bin3.找到redis.conf即redis的…

JAVA版B2B2C商城源码多商户入驻商城

三勾商城多商户是开发友好的微信小程序商城&#xff0c;框架支持SAAS&#xff0c;支持发布 iOS Android 公众号 H5 各种小程序&#xff08;微信/支付宝/百度/头条/QQ/钉钉/淘宝&#xff09;等多个平台&#xff0c;不可多得的二开神器&#xff0c; 为大中小企业提供极致的移…

hadoop的运行模式

作者简介&#xff1a;大家好我是小唐同学(๑>؂<๑&#xff09;&#xff0c;好久不见&#xff0c;为梦想而努力的小唐又回来了&#xff0c;让我们一起加油&#xff01;&#xff01;&#xff01; 个人主页&#xff1a;小唐同学(๑>؂<๑&#xff09;的博客主页 目前…

SWM181 外部中断(EXTI)功能使用

SWM181 外部中断&#xff08;EXTI&#xff09;功能使用&#x1f4cc;SDK固件包&#xff1a;https://www.synwit.cn/kuhanshu_amp_licheng/ &#x1f4d6;中断案例&#xff1a; &#x1f33c;开发板如下图&#xff1a; ✨注意新手谨慎选择作为入门单片机学习。 GPIO特性介…

代码随想录-49-111.二叉树的最小深度

目录前言题目1.层序迭代思路2. 本题思路分析&#xff1a;3. 算法实现4. pop函数的算法复杂度5. 算法坑点前言 在本科毕设结束后&#xff0c;我开始刷卡哥的“代码随想录”&#xff0c;每天一节。自己的总结笔记均会放在“算法刷题-代码随想录”该专栏下。 代码随想录此题链接 …

从功能测试进阶自动化测试涨薪10k,只用了1个月...

在开始正文前&#xff0c;先给大家一碗鸡汤&#xff1a;“你要坚信时间是不会辜负每一个努力付出的人&#xff0c;当你拥有一万次的训练和沉淀后&#xff0c;生活也会还你诗和远方。” 现在有很多人经常被“想要快速看到好的结果”的“快”思维裹挟着&#xff0c;稍微在短时间…

循环删除 List 中的元素

引用&#xff1a;https://mp.weixin.qq.com/s/j3k70kB3KPGO5ZKpOxJ4Pw 问题 比如有以下这个 List&#xff1a; public List<String> initList Arrays.asList("张三", "李四", "周一", "刘四", "李强", "李白&…

【微电网_储能】基于启发式状态机策略和线性程序策略优化方法的微电网中的储能研究【给定系统约束和定价的情况下】(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…

Share Creators确认参展GDC 2023,致力于解决游戏开发者数字资产管理难题

全球游戏行业年度盛会“2023 游戏开发者大会”&#xff08;Game Developers Conference&#xff0c;简称 GDC&#xff09;&#xff0c;是全球规模最大的游戏开发者盛会&#xff0c;将于 2023 年 3 月 20 至 24 日于美国旧金山举行。自 1988 年首次举办以来&#xff0c;本届 GDC…

Linux网络基础

目录 一.计算机网络背景 二、认识协议 三.OSI七层模型 四.TCP/IP五层(或四层)模型 五.网络传输基本流程 六.数据包封装和分用 七.网络中的地址管理 一.计算机网络背景 网络本质是一个层状结构&#xff0c;同时也是操作系统的一部分 网络发展 独立模式: 计算机之间相互…

学术速运|利用机器学习进行有机反应机理分类

​题目&#xff1a;Organic reaction mechanism classification using machine learning 文献来源: Nature | Vol 613 | 26 January 2023 | 691 代码&#xff1a;https://doi.org/10.48420/16965271 简介&#xff1a;对催化有机反应的机理的理解,有助于设计新的催化剂、反应…

微服务一 实用篇 - Docker安装

《微服务一 实用篇 - Docker安装》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《微服务一 实用篇 - Docker安装》《微服务一 实用篇 - Docker安装》0.安装Docker1.CentOS安装Docker1.1.卸载&#xff08;可选&#xff09;1.2.安装docker1.3.启动docker…

聚观早报|文心一言将于3月16日发布;字节Pico调低VR设备销售目标

今日要闻&#xff1a;百度「文心一言」将于3月16日发布&#xff1b;字节Pico调低VR设备销售目标&#xff1b;iPhone16Pro将采用屏下Face ID&#xff1b;京东低调重试前置仓卖菜业务&#xff1b;名创优品上季度净利增八成 百度「文心一言」将于3月16日发布 百度计划于 3 月 16 日…

DAGA : 基于生成方法的低资源标记任务数据增强 精读笔记

DAGA : 基于生成方法的低资源标记任务数据增强 精读笔记 文章目录DAGA : 基于生成方法的低资源标记任务数据增强 精读笔记1 Introduction2 BackgroundName Entity RecognitionPart-of-Speech (POS) TaggingTarget Based Sentiment Analysis3 Proposed Method3.1 Labeled Senten…

金三银四面试必备,“全新”突击真题宝典,阿里腾讯字节都稳了

前言招聘旺季就到了&#xff0c;不知道大家是否准备好了&#xff0c;面对金三银四的招聘旺季&#xff0c;如果没有精心准备那笔者认为那是对自己不负责任&#xff1b;就我们Java程序员来说&#xff0c;多数的公司总体上面试都是以自我介绍项目介绍项目细节/难点提问基础知识点考…

长短记忆神经网络(LSTM,Long Short-Term Memory)

长短记忆神经网络定义 长短记忆神经网络&#xff08;Long-short term memory, LSTM&#xff09;是一种特殊的RNN结构。该神经网络可以有效保留历史信息&#xff0c;实现对文本的长期依赖信息进行学习。 关键问题&#xff1a;控制长期状态信息 解决方法&#xff1a;门控开关 门的…

在windows安装python3.11同时进行一个数据的练习

安装包百度网盘如下&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1l9H1GWP64LOxLaXXLie2uA?pwd6666 提取码&#xff1a;6666 1.我们选择自定义安装 2.当我们点了自定义安装后就直接next 3.修改路径&#xff0c;之后点击安装(install) 4.安装完成&#xff0c;进行…

南卡Neo骨传导运动耳机发布,重塑骨传导耳机舒适听感新体验!

近日&#xff0c;在骨传导耳机领域中最专业的南卡发布了今年全新系列——NEO&#xff0c;如果说南卡Runner Pro4的音质是偏向于节奏性&#xff0c;那么这款南卡NEO是更加偏向于沉稳性节奏&#xff0c;能够轻松征服轻运动场景&#xff0c;此系列在舒适度以及音质上&#xff0c;更…

3.3 利用群晖:群辉与PC电脑直连,实现万兆/2.5G速度文件互传(解决 直连后 网络/外网/网页 访问变慢,直连后群辉无网络 cloud sync无网络)

为黑群晖和电脑装备了万兆X540 T2网卡&#xff0c;为实现万兆速度的文件互传&#xff0c;决定将黑群晖直连PC&#xff0c;其需要注意的点有以下三点&#xff1a;修改PC和群辉的IPv4&#xff1a;为实现固定IP访问群辉&#xff0c;这里建议修改PC和群辉均为固定IP。1&#xff09;…