Django--初始化

2023-05-16

1、Django介绍

它是一个WEB框架

  • Django--大而全

  • tornado、flask--小而精


2、Django安装

    https://www.djangoproject.com/download/


3、创建django程序

  • 手动创建

file--new project--Django--Location--create(打开后最好不要有上层目录)

  • 命令创建

cmd>django-admin startproject sitename


4、程序目录

827870-20160310104937538-237410312.jpg

各文件作用:
  • settings.py--配置文件

  • urls.py--路由

  • wsgi.py--用那种wsgi方式(wsgi或者uwsgi)

  • templates--html模板

  • manage.py--主程序,启动程序

注意:不要轻易更改项目的名称,涉及的地方太多。
还有其他目录:

app--项目里的一个扩展,可以有多个,如前台和后台



5、 创建app目录

cmd> python manage.py startapp app01

app目录--项目里的一个扩展,可以有多个,如前台和后台

--models.py,对数据库进行操作

--views.py,视图,函数

--tests.py,测试用

--admin.py,后台管理程序  http://127.0.0.1:8000/admin/


6、生成超级用户

没有数据库要先创建表,不然生成用户会报错:no such table:auth_user

cmd> python manage.py syncdb

cmd> yes

此时创建的用户就能进入后台管理,另外生成了一个db.sqlite3数据库文件,用sqlite工具能看到具体信息,如navicat等。

如果要生成到mysql数据库,需要在settings.py里配置。

创建超级用户:

cmd> python manage.py createsuperuser

在后台的用户表里就能看到用户user和group了


7、启动服务

cmd> python manage.py runserver 127.0.0.1:8000


8、第一个Django程序

路由--urls.py
1
2
3
4
5
from app01 import views
urlpatterns = [
     url(r '^admin/' , admin.site.urls),
     url(r '^home/' , views.home),
]
请求处理--views.py

1
2
3
from django.shortcuts import HttpResponse     
def home(request):                          //必要参数request,包含请求的全部信息。
     return HttpResponse( "ok" )               //Django返回的字符串需要用HttpResponse()包装,不能直接返回字符串。


9、模板渲染

路由--urls.py

同上

请求处理--views.py
1
2
3
4
from django.shortcuts import render
dic={ 'arg' : 'home1' ,}
def home(request):
     return render(request, 'home.html' ,dic)  #读取home.html,并返回给请求者,dic是参数,传到页面中
模板--templates/home.html
1
2
3
4
from django.shortcuts import render
dic={ 'arg' : 'home1' , 'user_list' :[ 'user1' , 'user2' ]}
def home(request):
     return render(request, 'home.html' ,dic)  #读取home.html,并返回给请求者,dic是参数,传到页面中


10、render的原理

  1. 打开html文件--open()

  2. 渲染模板和内容--Template()

  3. 返回字符串--HttpResponse()

1
2
3
4
5
6
7
8
9
10
import datetime
from django import template
import DjangoDemo.settings
  
now = datetime.datetime.now()
fp = open(settings.BASE_DIR+ '/templates/Home/Index.html' )
t = template.Template(fp.read())
fp.close()
html = t.render(template.Context({ 'current_date' : now}))
return HttpResponse(html)


11、模板语言

模板中也有自己的语言,该语言可以实现数据展示

  • {{ item }}

  • {% for item in item_list %}  <a>{{ item }}</a>  {% endfor %}
      forloop.counter
      forloop.first
      forloop.last 

  • {% if ordered_warranty %}  {% else %} {% endif %}

  • 母板:{% block title %}{% endblock %}
    子板:{% extends "base.html" %}
       {% block title %}{% endblock %}

  • 帮助方法:
    {{ item.event_start|date:"Y-m-d H:i:s"}}
    {{ bio|truncatewords:"30" }}
    {{ my_list|first|upper }}
    {{ name|lower }}

方法有限,如果想使用跟多模板方法,需要自定义,看下面一节。


12、自定义方法--simple_tag

  1. 在app中创建templatetags模块

    827870-20160310104938022-1850814620.png

  2. 创建任意 .py 文件,如:xx.py

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    from django import template
    from django.utils.safestring import mark_safe
    from django.template.base import resolve_ var iable, Node, TemplateSyntaxError
       
    register = template.Library()
       
    @register.simple_tag
    def my_simple_time(v1,v2,v3):
         return  v1 + v2 + v3
       
    @register.simple_tag
    def my_input(id,arg):
         result = "<input type='text' id='%s' class='%s' />" %(id,arg,)
         return mark_safe(result)
  3. 在使用自定义simple_tag的html文件开头导入之前创建的 xx.py 文件名

    1
    {% load xx %}
  4. html中使用simple_tag

    1
    2
    3
    4
    <body>
         {% my_simple_time 1 2 3 %}
         {% my_input 'id_username' 'hide' %}
    </body>
  5. 在settings中配置当前app,不然django无法找到自定义的simple_tag 

    1
    2
    3
    4
    5
    6
    7
    8
    9
    INSTALLED_APPS = [
         'django.contrib.admin' ,
         'django.contrib.auth' ,
         'django.contrib.contenttypes' ,
         'django.contrib.sessions' ,
         'django.contrib.messages' ,
         'django.contrib.staticfiles' ,
         'app01' ,
    ]
效果:827870-20160310104938429-1614365906.png
  • 第一个函数是算加法,1、2、3是参数;

  • 第二个函数是写一个标签,'id_username' 'hide'是参数。


13、母版,子版,include

templates里创建一个目录:master,目录里创建文件mother.html和son.html

827870-20160310104938882-77462070.png

母版mother.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<head>
     <meta charset= "UTF-8" >
     <title>{% block title %}{% endblock %}</title>
     <style>
         .header{
             height: 48px;
             background-color: red;
         }
         .body{
             background-color: antiquewhite;
         }
         .body .menu{
             background-color: aqua;
             width: 20 %;
             float: left;
         }
         .body .content{
             background-color: aquamarine;
             width: 80 %;
             float: left;
         }
     </style>
</head>
<body>
     <div class = "header" >LOGO</div>
     <div class = "body" >
         <div class = "menu" >左侧菜单</div>
         <div class = "content" >{% block content %}{% endblock %}</div>
     </div>
</body>
</html>
子版son.html

1
2
3
4
5
6
7
8
9
10
{% extends "master/mother.html" %}
 
{% block title %}
     母版子版
{% endblock %}
 
{% block content %}
     <h1>Son的右侧内容</h1>
     {% include "include/input_group.html" %}
{% endblock %}
路由urls.py
1
2
3
4
5
from app01 import views
urlpatterns = [
     url(r '^admin/' , admin.site.urls),
     url(r '^son/' , views.son),
]
视图views.py
1
2
3
from django.shortcuts import render
def son(request):
     return render(request, 'master/son.html' )
给son添加include内容,include功能

827870-20160310104939491-1391550098.png

input_group.html
1
2
3
4
5
<h1>Include输入组合</h1>
<input type= "text" />
<input type= "text" />
<input type= "text" />
<input type= "text" />
效果:
827870-20160310104939897-357809774.png

827870-20160310104940241-599572230.png

注意点:
  • 母版只能继承一个。

  • 当某一小块功能用在很多页面中,用include。

  • son加css样式,{% block css %}{% endblock %}

  • son加js,{% block js %}{% endblock %}


14、Django中的静态文件

创建目录

827870-20160310104940850-1482029496.png

配置文件settings​.py
1
2
3
4
STATIC_URL = '/static/'
STATICFILES_DIRS = (
     os.path.join(BASE_DIR, 'static' ),
)
调用
1
<link ref= "stylesheet" href= "/static/css/common.css" >














来自为知笔记(Wiz)


转载于:https://www.cnblogs.com/daliangtou/p/5260970.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django--初始化 的相关文章

  • “远程调试监视器(MSVSMON.EXE)似乎没有在远程计算机上运行“的完美解决方案

    今天调试程序时 xff0c Visual Studio突然报出了如下错误 xff1a Microsoft Visual Studio 远程调试监视器 MSVSMON EXE 似乎没有在远程计算机上运行 这可能是因为防火墙阻止与远程计算机通信
  • Go——切片困惑

    1 数组 Go的数组是有固定个相同类型元素的数据结构 xff0c 底层采用连续的内存空间存放 xff0c 数组一旦声明后大小就不可改变了 注意 xff1a Go中的数组是一种基本类型 xff0c 数组的类型不仅包括其元素类型 xff0c 也
  • Tensorflow版本和python对应关系,以及tensorflow下载路径

    A few installation mechanisms require the URL of the TensorFlow Python package The value you specify depends on your Pyt
  • windows下 go安装qt绑定

    1 下载安装QT 离线版QT地址 https download qt io official releases qt 5 11 5 11 1 qt opensource windows x86 5 11 1 exe 注意 xff1a 最好全
  • ios设备备份,更新路径(mac os)

    备份路径 xff1a Library Application Support MobileSync Backup 固件更新下载路径 xff1a Library iTunes iPhone Software Updates 转载于 https
  • Flutter FormatException: Bad UTF-8 encoding 0xc3 (at offset 172)

    是文件编码问题 1 xff0c 打开 Android Studio 进入设置界面 Ctrl 43 Alt 43 S 或 File gt Settings 打开如下界面 xff1a 2 xff0c 将 Project Encodeing 设置
  • 数据库系统原理及应用教程复习笔记(第3 版)

    最近在复习数据库相关知识点 xff0c 过几天就要考试了 xff1b 第一章 数据库基础知识 1 数据库管理是数据处理的基础工作 xff0c 数据库是数据管理的技术和手段 数据库中的数据具有整体性和共享性 1 2 数据库系统的核心 xff1
  • ubuntu 由于没有公钥,无法验证下列签名

    W GPG 错误 xff1a http deb opera com stable InRelease 由于没有公钥 xff0c 无法验证下列签名 xff1a NO PUBKEY 63F7D4AFF6D61D45 没有公钥的此类错误只要在终端
  • mysql2 没有配置文件怎么办

    1111mysql没有配置文件会用默认的配置 启动时没有使用配置文件 如果没有设置使用指定目录my cnf文件及默认读取目录没有my cnf文件 xff0c 表示mysql启动时并没有加载配置文件 xff0c 而是使用默认配置 需要修改配置
  • repo init 时gpg: 无法检查签名:找不到公钥

    i found a solution here http www marshut com wrrts repo release 1 12 4 html Sorry I realized today that we didn 39 t upl
  • 使用Java对字符串进行升序排序

    Java对字符串的很多API和功能是JavaWeb能广泛发展的基础 xff0c 下面是一道经典的字符串操作题 xff0c 需要边查JAVASE的API对每个步骤进行操作 题目 xff1a 给一个字符串 xff0c 34 34 12 8 0
  • 2.2 关系代数运算

    2 2 1 关系代数的五个基本操作 考核要求 xff1a 达到 简单应用 层次 知识点 xff1a 五个基本操作的含义和运算应用 1 并 xff1a 两个关系需有相同的关系模式 xff0c 并的对象是元组 xff0c 由两个关系所有元组构成
  • FTP 之 550 permission denied

    做案子時 將WinInet dll封裝 用C 調用 做了四個函數 分別是上傳 下載 刪除 清空文件夾 在開發環境中測試沒有任何問題 但拿到正式環境中卻出現 34 550 c dh MPF dir ABC 34 不存在的錯誤 但實際上的FTP
  • Go——值、指针和引用

    传值还是传引用 在函数和接口章节 xff0c 我们知道Go只有一种参数传递规则 xff0c 那就是值拷贝 xff0c 这种规则包括两种含义 xff1a 函数参数传递时使用的是值拷贝 实例赋值给接口变量 xff0c 接口对实例的引用是值拷贝
  • 读取PC版微信数据库(电脑版微信数据库)内容

    原始网址 https www cnblogs com Charltsing p WeChatPCdb html 联系QQ xff1a 564955427 1 PC版微信的密钥是32位byte xff0c 不同于安卓版 xff08 7位字符串
  • Pytorch-属性统计

    引言 本篇介绍Pytorch属性统计的几种方式 统计属性 求值或位置 normmean sumprodmax min argmin argmaxkthvalue topk norm norm 与 normalize norm指的是范数 xf
  • 高性能异步爬虫

    背景 其实爬虫的本质就是client发请求批量获取server的响应数据 xff0c 如果我们有多个url待爬取 xff0c 只用一个线程且采用串行的方式执行 xff0c 那只能等待爬取一个结束后才能继续下一个 xff0c 效率会非常低 需
  • [operator]deepin 卸载自带搜狗输入法后,输入法消失

    解决这个问题我先是升级了官方的im config套件 xff0c 升级后发现并没有什么用 xff0c 然后使用以下方式 xff0c 做个记录 命令行操作 删除搜狗的残留文件 cd config rm rf SogouPY users rm
  • DPK

    一 概念 dpk文件是Delphi的包文件 xff0c 有dpk文件的组件安装比较方便 一般来说 xff0c 支持不同版本Delphi的组件会有不同的dpk文件 xff0c 一般以7结尾的dpk文件是支持Delphi 7的 如果没有支持De
  • free -g 说明

    free g 说明 xff1a free g 43 buffers cache 说明 xff1a buffer 写缓存 xff0c 表示脏数据写入磁盘之前缓存一段时间 xff0c 可以释放 sync命令可以把buffer强制写入硬盘 cac

随机推荐

  • Google Drive 里的文件下载的方法

    Google Drive 里并不提供创建直接下载链接的选项 xff0c 但是可以通过小小的更改链接形式就能把分享的内容保存到本地 例如 xff0c 一份通过 Google Drive 分享的文件链接形式为 xff1a https drive
  • 关于虚拟机VMware Tools安装中出现的无法自动安装VMCI驱动程序的问题

    问题 解决方法 根据配置文件信息找到所在的虚拟机位置 找到后缀名为vmx的文件 xff0c 右键打开方式中选择使用记事本打开 选择左上角编辑中的查找功能输入图中的查找内容后 xff0c 点击查找下一个 将其原先的TRUE值改为false即可
  • 服务器系统运行内存,服务器系统运行内存使用情况

    服务器系统运行内存使用情况 内容精选 换一换 包年 包月的计费模式也称为包周期计费模式 xff0c 是一种预付费方式 xff0c 按订单的购买周期计费 xff0c 适用于可预估资源使用周期的场景 xff0c 价格比按需计费模式更优惠 包年
  • Ubuntu 18.04 上使用xrdp远程桌面登录蓝屏解决

    所有工具方法来自 http c nergy be blog p 61 13663 免责声明 xff1a 像往常一样 xff0c 使用此风险自负 xff01 本地有台机器装了乌班图18 04版本系统 我们想远程图形化访问它 我第一想法是xrd
  • Go——习惯用法

    1 干净与强迫症 Go在代码干净上有了近乎苛刻的要求 xff0c 主要体现在如下几个方面 xff1a 编译器不能通过未使用的局部变量 xff08 包括未使用的标签 xff09 import 未使用的包同样通不过编译 所有的控制结构 函数和方
  • snprintf()函数使用方法

    众所周知 sprintf不能检查目标字符串的长度 xff0c 可能造成众多安全问题 所以都会推荐使用snprintf 自从snprintf代替了sprintf xff0c 相信大家对snprintf的使用都不会少 xff0c 函数定义如下
  • Openwrt无线中继设置并访问外网

    Openwrt无线中继设置并访问外网 本篇博文参考来自 xff1a http blog csdn net pifangsione article details 13162023 配置目标 主路由器使用AP模式发射Wifi从路由器使用Cli
  • 在 Windows 7 中禁用IPv6协议/IPv6隧道

    How to disable certain Internet Protocol version 6 IPv6 components in Windows Vista Windows 7 and Windows Server 2008 ht
  • python matplotlib绘图大全(散点图、柱状图、饼图、极坐标图、热量图、三维图以及热图)...

    2019 7 14晚 matplotlib七种常见图像输出编程大全 七种图形汇总输出如下 xff1a import numpy as np 导入数据结构nmupy模块 import matplotlib pyplot as plt 导入ma
  • 光纤模式分布 matlab,matlab计算单模光纤模式分布(公布源代码及参考文献)

    最近在使用matlab计算单模光纤纤芯模及包层模模场分布时 xff0c 有一些问题一直悬而未决 xff0c 多次咨询原作者后虽解决了部分问题 xff0c 但是余下的问题原作者也不理我了 xff0c 特发此贴以广交学习光纤方面的同学 老师及科
  • Ubuntu下编译安装MySQL5.7

    tar zxvf mysql 5 7 14 tar gz cd mysql 5 7 14 第一步 xff1a cmake DCMAKE INSTALL PREFIX 61 usr local mysql DMYSQL DATADIR 61
  • UNICODE使用的一些知识和技巧

    UNICODE宏和 UNICODE宏的关系 在windows编程中 经常要编译Unicode版本的程序 方法是工程文件的配置中加上UNICODE或者 UNICODE编译条件 那么到底是用哪一个呢 Jeffrey Richter在 Windo
  • cmake 常用命令

    1 使用日期 获取时间 string TIMESTAMP DATE TIME 34 y m d H M 34 获取日期 string TIMESTAMP DATE VERSION 34 m d 34 转载于 https www cnblog
  • QQ2008 msg.db,user.db读取

    Saturday November 27 2010 msg db读取 下载 user db读取 下载 转载于 https www cnblogs com ycdx2001 archive 2010 11 27 1889498 html
  • MongoDB——Mac环境搭建

    1 下载 官网地址 xff1a https www mongodb com 2 解压并配置 解压到 usr local 配置Path xff0c vim打开 bash profile添加export PATH 61 PATH usr loc
  • Django模型

    模型是你的数据的唯一的 权威的信息源 它包含你所储存数据的必要字段和行为 通常 xff0c 每个模型对应数据库中唯一的一张表 1 基础 每个模型都是django db models Model 的一个Python 子类 模型的每个属性都表示
  • 速度之王 — LZ4压缩算法(二)

    LZ4 Extremely Fast Compression algorithm 项目 xff1a http code google com p lz4 作者 xff1a Yann Collet 本文作者 xff1a zhangskd 64
  • dpkg

    dpkg error dpkg status database is locked by another process 无法获得锁 var lib apt lists lock open ubuntu升级错误或强制中断后容易爆出上面两个错
  • html5中加一个链接,HTML5教程—链接的添加方式_HTML5教程_链接添加_HTML5运用_课课家...

    HTML5的强大功能有很多 xff0c 在图像的修改中 xff0c 我们可见其强大 xff0c 然而其中有一个功能仍能可以运用于广告中的 xff0c 因为在广告主的需求中 xff0c 有很多情况下需要在动画中添加一些外部链接 而这份文档就在
  • Django--初始化

    1 Django介绍 它是一个WEB框架 Django 大而全tornado flask 小而精 2 Django安装 https www djangoproject com download 3 创建django程序 手动创建 file