django笔记补充
安装 pip install django
环境变量: C:\Program Files\Anaconda3\Scripts
django-admin startproject mysite 创建django工程
mysite目录
-mysite #对整个程序进行配置
- __init__
-settings #配置文件
-urls #URL对应关系
-wsgi #规则 接口 用于帮组django创建socket 遵循wsgi规范 正式用的是uwsgi+nginx
-manage.py #管理django程序
- python manage.py 运行django
- python manage.py startapp 创建app
- python manage.py makemigrations orm框架 自动生成数据库 操作数据库
- python manage.py migrate orm框架 自动生成数据库 操作数据库
python.exe manage.py runserver 127.0.0.1:8000 启动django web页面
支持wsgi接口的模块:
server_names = {
'cgi': CGIServer,
'flup': FlupFCGIServer,
'wsgiref': WSGIRefServer,
'waitress': WaitressServer,
'cherrypy': CherryPyServer,
'paste': PasteServer,
'fapws3': FapwsServer,
'tornado': TornadoServer,
'gae': AppEngineServer,
'twisted': TwistedServer,
'diesel': DieselServer,
'meinheld': MeinheldServer,
'gunicorn': GunicornServer,
'eventlet': EventletServer,
'gevent': GeventServer,
'geventSocketIO':GeventSocketIOServer,
'rocket': RocketServer,
'bjoern' : BjoernServer,
'auto': AutoServer,
}
ORM:关系对象映射
chouti
-chouti
-配置
-主站 app
-后台管理 app
#创建app
python manage.py startapp cmdb
python manage.py startapp openstack
python manage.py startapp moniter
app:
migrations 数据库操作记录 修改表结构的记录
admin django提供的后台管理
建表会报错参照 https://blog.csdn.net/jiangxunzhi123/article/details/86160146
apps 配置当前app
models ORM,写指定的类,通过命令可以创建数据库结构
tests 单元测试
views 业务代码
1,配置模板的路径
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(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',
],
},
},
]
2,配置静态目录:
STATIC_URL = '/static/'
STATICFILES_DIRS=(
os.path.join(BASE_DIR,'static'),
)
<link rel="stylesheet" href="/static/commons.css"/>
<script src="/static/jquery-1.12.4.js"></script>
url提交是get
submit提交是post
settings中
middlerware
#注释csrf
GET:获取数据
POST:提交数据
定义路由规则:
url.py
"login" --->函数名
定义视图函数
app下的views.py
def func(request):
#request.method GET/POST
#http://127.0.0.1:8000/home?nid=123&name=alex
#request.GET.get('',None) #获取请求发来的数据
#request.POST.get('',None)
#return HttpResponse("字符串")
#return render(request,"Html模板的路径")
#return redirect('/只能填url')
模板渲染
特殊的模板语言
--{{变量名}}
def func(request):
return render(request,'index.html',{'current_user':"alex"})
index.html
<html>
<body>
<div>{{current_user}}</div>
</body>
</html>
===>最后生成的字符串
<html>
<body>
<div><alex></div>
</body>
</html>
---->For循环
def func(request):
return render(request,'index.html',{'current_user':"alex",'user_list':['lei','leo']})
index.html
<html>
<body>
<div>{{current_user}}</div>
<ul>
{% for row in user_list%}
{% if row=="alex"%}
<li>{{row}}</li>
{%endif%}
{%endfor%}
</ul>
</body>
</html>
索引
def func(request):
return render(request,'index.html',{'current_user':"alex",
'user_list':['lei','leo'],
'user_dict':{'k1':'v1','k2':'v2'}})
index.html
<html>
<body>
<div>{{current_user}}</div>
<a>{{user_list.0}}</a>
<a>{{user_dict.k1}}</a>
<a>{{user_dict.k2}}</a>
</body>
</html>
条件
def func(request):
return render(request,'index.html',{'current_user':"alex",
'age':18,
'user_list':['lei','leo'],
'user_dict':{'k1':'v1','k2':'v2'}})
index.html
<html>
<body>
<div>{{current_user}}</div>
<a>{{user_list.0}}</a>
<a>{{user_dict.k1}}</a>
<a>{{user_dict.k2}}</a>
{% if age %}
<a>有年龄</a>
{% if age > 19 %}
<a>老了</a>
{%else%}
<a>小鲜肉</a>
{%endif%}
{ else}
<a>false</a>
{%endif%}
</body>
</html>
django请求生命周期
用户--->URL对应关系(匹配) -->视图函数 -->返回给用户(字符串)
用户--->URL对应关系(匹配) -->视图函数 -->打开一个HTML文件,读取内容
作业:
XXOO管理:
mysql
sqlalchemy
主机管理表:
Ip
端口
业务线
...
用户表:
用户名
密码
功能:
1,登录
2,主机管理页面
-查看所有的主机信息(4列)
-增加主机信息(8列) ** 模态对话框
3,查看详细
url:
"detail" -->detail
def detail(request):
nid=request.GET.get("nid")
v=select * from tb where id=nid;
...
4,删除
del_host ->delete _host
def delete_host(request):
nid=request.POST.get('nid')
delete from tb where id=nid
return redirect('/home')
django笔记补充的更多相关文章
- Web框架——Django笔记
Web框架--Django笔记 MVC和MTV MVC:Model.View.Controller MTV:Model.Template.View Django--MTV 1.创建Django程序 ...
- Django组件补充(缓存,信号,序列化)
Django组件补充(缓存,信号,序列化) Django的缓存机制 1.1 缓存介绍 1.缓存的简介 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑 ...
- Python学习---django知识补充之CBV
Django知识补充之CBV Django: url --> def函数 FBV[function based view] 用函数和URL进行匹配 url --> ...
- Django 知识点补充
Django 知识点补充 1 Django如何在Model保存前做一定的固定操作,比如写一条日志 (1)利用Django的Model的Signal Dispatcher, 通过django.db.mo ...
- Django笔记 —— Admin(Django站点管理界面)
最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...
- Django笔记 —— 模型
最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...
- Django笔记 —— MySQL安装
最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...
- Django笔记 —— 模板
最近在学习Django,打算玩玩网页后台方面的东西,因为一直很好奇但却没怎么接触过.Django对我来说是一个全新的内容,思路想来也是全新的,或许并不能写得很明白,所以大家就凑合着看吧- 本篇笔记(其 ...
- STM32 FSMC学习笔记+补充(LCD的FSMC配置)
STM32 FSMC学习笔记+补充(LCD的FSMC配置) STM32 FSMC学习笔记 STM32 FSMC的用法--LCD
- django笔记三之admin的管理
django笔记三之admin的管理 设置自动admin应用 vim todos/settings.py INSTALLED_APPS = ( 'django.contrib.admin', 新版本已 ...
随机推荐
- Linux 提升CPU利用率
由于同学项目CPU利用率不高,客户要降他们服务器配置,所以下下策. # 提升一个核CPU利用率 cat /dev/urandom | gzip -9 > /dev/null # 提升更大的CPU ...
- 给大模型添加联网功能的免费方案,以langchain为例
langchain介绍 LangChain 是一个用于开发由大型语言模型 (LLM) 驱动的应用程序的框架. 简单来说,它可以帮助你更轻松地构建利用 LLM(例如 OpenAI 的 GPT 模型.Go ...
- 音乐在线刮削容器部署(Music Tag Web)
『音乐标签』Web版是一款可以编辑歌曲的标题,专辑,艺术家,歌词,封面等信息的音乐标签编辑器程序, 支持FLAC, APE, WAV, AIFF, WV, TTA, MP3, M4A, OGG, MP ...
- 【BUUCTF】AreUSerialz
[BUUCTF]AreUSerialz (反序列化) 题目来源 收录于:BUUCTF 网鼎杯 2020 青龙组 题目描述 根据PHP代码进行反序列化 <?php include("fl ...
- Zookeeper、Hadoop、Hbase的启动顺序以及关闭顺序
启动顺序 Hadoop及hbase集群启动顺序 zookeepeer -> hadoop -> hbase 停止顺序 Hadoop及hbase集群关闭顺序 hbase -> hado ...
- php stripslashes 函数的意思
脑子不行了,很多东西看过就忘,比如这个stripslashes,知道是去除反斜杠,但为啥用它死活想不起来,搜索一下,把这几篇文章抄下来: 1.反斜杠是怎么回事 两个东西 ini_set(magic_q ...
- ctfhub-rce-部分做题记录
命令注入 检查网页显示内容,可以直接看到源代码.大致意思是:检查用户输入的 GET 请求,判断用户是否输入了 ip 信息.如果输入了 ip 信息,则使用用户输入的这个 ip 数据执行一个 shell ...
- 使用PySide6/PyQt6实现Python跨平台通用列表页面的基类设计
我在随笔<使用PySide6/PyQt6实现Python跨平台GUI框架的开发>中介绍过PySide6/PyQt6 框架架构的整体设计,本篇随笔继续深入探讨框架的设计开发工作,主要针对通用 ...
- go 遍历修改切片数据
package main import "fmt" type good struct { id int64 sum int64 } func main() { good1 := g ...
- 同一局域网下,远程连接另一台电脑的Mysql数据库
博客地址:https://www.cnblogs.com/zylyehuo/ 参考链接 同一局域网,远程连接别人的Mysql数据库 用电脑A去远程电脑B的数据库,那我们要先在电脑B上设置一下: ste ...