django基础 -- 2. django初识
一.模块渲染 jinja2
实现简单的字符串替换(动态页面)
1.下载
pip install jinja2
示例 : html文件中
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Title</title>
</head>
<body>
<h1>姓名:{{name}}</h1>
<h1>爱好:</h1>
<ul>
{% for hobby in hobby_list %}
<li>{{hobby}}</li>
{% endfor %}
</ul>
</body>
</html>
使用jinja2来渲染的python文件
from wsgiref.simple_server import make_server
from jinja2 import Template def index():
with open("index2.html", "r",encoding='utf-8') as f:
data = f.read()
template = Template(data) # 生成模板文件
ret = template.render({"name": "于谦", "hobby_list": ["烫头", "泡吧"]}) # 把数据填充到模板里面
return [bytes(ret, encoding="utf8"), ] # 定义一个url和函数的对应关系
URL_LIST = [
("/index/", index),
] def run_server(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html;charset=utf8'), ]) # 设置HTTP响应的状态码和头信息
url = environ['PATH_INFO'] # 取到用户输入的url
func = None # 将要执行的函数
for i in URL_LIST:
if i[0] == url:
func = i[1] # 去之前定义好的url列表里找url应该执行的函数
break
if func: # 如果能找到要执行的函数
return func() # 返回函数的执行结果
else:
return [bytes("404没有该页面", encoding="utf8"), ] if __name__ == '__main__':
httpd = make_server('', 8000, run_server)
print("Serving HTTP on port 8000...")
httpd.serve_forever()
二.MVC 和 MTV 框架
1.MVC框架
M:model.py 就是和数据库打交道用的,创建表等操作 V:View 视图(视图函数,html文件) C:controller 控制器(其实就是我百度云代码里面那个urls文件里面的内容,url(路径)分发与视图函数的逻辑处理)


2.MTV框架(django) (和MVC本质上一样)
1.M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
2.T 代表模板 (Template):负责如何把页面展示给用户(html)。
3.V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。
4.除了以上三层之外,还需要一个URL分发器,它的作用是将一个个URL的页面请求分发给不同的View处理,
View再调用相应的Model和Template,MTV的响应模式如下所示:

三. Django 下载
1. 安装代码
pip3 install django==1.11.9
2.在命令行中的使用
①切换到要安装django的文件夹下
② 创建项目框架
输入> django-admin startproject 项目名
③切换到 "项目名" 文件下
输入> cd 项目名
④ 创建 app 文件
输入> django-admin startapp app名
⑤ 启动
输入> python manage.py runserver 127.0.0.1:8000
3.在pycharm 中的使用




①目录结构
项目名
manage.py
项目名
settings.py 项目全局的配置信息
必须要有('DIRS': [os.path.join(BASE_DIR, 'templates')])
urls.py 路径和函数的对应关系
wsgi.py socket相关的 app01
views.py 视图函数 就是业务代码逻辑
models.py 数据库相关
②.回复消息

③.回复html

④.引入新网页改变三个地方
1) 在 templates文件 中插入html文件

2) 在 urls.py 文件中引入 views ,并写好映射关系

3) 在 views.py 文件中写好对应函数

⑤form表单的处理
input标签都写在form表单里面
①input name属性必须要写
用户名 input text name='username' 输入的是:ww
密码 input password name='password' 输入的是:666
② input type='submit' ③ form action='提交数据的路径' method='post\get'
action='http://127.0.0.1:8000/auth/'
现象:
get 'http://127.0.0.1:8000/auth/?username=ww&password=666'
在地址中可见
post 'http://127.0.0.1:8000/auth/'
请求数据部分 地址栏不可见 urls.py 文件中 url(r'^auth/', views.auth),
view.py 文件中 def auth(request): request.method 获取请求方式get\post request.GET 得到请求数据(就是个大字典 )
uname = request.GET.get('username')
pword = request.GET.get('password') post请求数据的获取方式
#uname = request.POST.get('username') 取数据,数据库查询数据 返回对应结果
return HttpResponse('xxx')
django基础 -- 2. django初识的更多相关文章
- day 65 Django基础之django分页
Django基础之django分页 一.Django的内置分页器(paginator) view from django.shortcuts import render,HttpRespons ...
- day 61 Django基础之django分页
Django基础之django分页 一.Django的内置分页器(paginator) view from django.shortcuts import render,HttpRespons ...
- 13.Django基础之django分页
一.Django的内置分页器(paginator) view from django.shortcuts import render,HttpResponse # Create your views ...
- Django基础之django分页
一.Django的内置分页器(paginator) view from django.shortcuts import render,HttpResponse # Create your views ...
- 【django基础】django接口 异步ajax请求 导出数据库成excel表(包裹前端后端)
py文件: from django.utils.http import urlquote from rest_framework.views import APIView from django.sh ...
- 老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分
老师的blog整理 python基础部分: 宝哥blog: https://www.cnblogs.com/guobaoyuan/ 开哥blog: https://home.cnblogs.com/u ...
- 老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分
老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分 老师的blog整理 python基础部分: 宝哥blog: https://www.cnblogs.com/gu ...
- 【笔记】Django基础(一)
---恢复内容开始--- [笔记]Django基础(一) oldboy Django 一 关于Python框架的本质 1. HTTP协议消息的格式: 请求(request) 请求方法 路径 HTTP ...
- Web框架之Django_01初识(三大主流web框架、Django安装、Django项目创建方式及其相关配置、Django基础三件套:HttpResponse、render、redirect)
摘要: Web框架概述 Django简介 Django项目创建 Django基础必备三件套(HttpResponse.render.redirect) 一.Web框架概述: Python三大主流Web ...
随机推荐
- mysql 错误2002
ERROR 2002 (HY000): Can’t connect to local MySQL server throughsocket ‘/tmp/mysql.sock’ (2) 今天遇到的200 ...
- sql server行列转化和行列置换
行列转换: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 李四 物理 94 想变成(得到如下结果): 姓名 语文 数学 物理 ---- - ...
- 并发工具CyclicBarrier
想想一下这样一个场景,有多个人需要过河,河上有一条船,船要等待满10个人才过河,过完河后每个人又各自行动. 这里的人相当于线程,注意这里,每个线程运行到一半的时候,它就要等待一个条件,即船满过河的条件 ...
- websocket发送接收协议
一.websocket接收数据 1)固定字节(1000 0001或1000 0010); ---区分是否是数据包的一个固定字节(占1个字节) 个字节是数据的长度; 3)mark 掩码为包长之后的 ...
- NFS配置与安装
安装 1 环境描述: * 网络环境: NFS server: 192.168.102.47 NFS client: 192.1 ...
- 2.匿名类,匿名类对象,private/protected/public关键字、abstract抽象类,抽象方法、final关键字的使用,多线程Thread类start方法原理
package com.bawei.multithread; //注意:模板方法我们通常使用抽象类或者抽象方法!这里我们为了方便在本类中使用就没有使用抽象类/抽象方法 public class Tem ...
- Oracle10g 连接 sqlserver 在server2008r2 中连接 iis7 .net4.0
一.做好了连接但是到了64位的server2008r2上就是不行,报错dns上不匹配.最后找到原因了 自己到c盘里面找32位的odbc管理工具然后建立连接,然后一切正常. 二.iis7 .net4.0 ...
- JavaScript中直接量和变量
标题 1.直接量 顾名思义,可以直接拿来使用的量.那哪些是直接量呢?数据类型又有很多种,因为不同类型的数据处理方式是不同的,所以数据要分类型 基本类型 1.1 String字符串 用单引号或双引号引起 ...
- Applegate 方法使用
1. - (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotif ...
- canvas添加水印
<canvas id="canvas"></canvas><canvas id="water"></canvas> ...