一.模块渲染  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初识的更多相关文章

  1. day 65 Django基础之django分页

      Django基础之django分页   一.Django的内置分页器(paginator) view from django.shortcuts import render,HttpRespons ...

  2. day 61 Django基础之django分页

      Django基础之django分页 一.Django的内置分页器(paginator) view   from django.shortcuts import render,HttpRespons ...

  3. 13.Django基础之django分页

    一.Django的内置分页器(paginator) view from django.shortcuts import render,HttpResponse # Create your views ...

  4. Django基础之django分页

    一.Django的内置分页器(paginator) view from django.shortcuts import render,HttpResponse # Create your views ...

  5. 【django基础】django接口 异步ajax请求 导出数据库成excel表(包裹前端后端)

    py文件: from django.utils.http import urlquote from rest_framework.views import APIView from django.sh ...

  6. 老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分

    老师的blog整理 python基础部分: 宝哥blog: https://www.cnblogs.com/guobaoyuan/ 开哥blog: https://home.cnblogs.com/u ...

  7. 老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分

    老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分   老师的blog整理 python基础部分: 宝哥blog: https://www.cnblogs.com/gu ...

  8. 【笔记】Django基础(一)

    ---恢复内容开始--- [笔记]Django基础(一) oldboy Django  一 关于Python框架的本质 1. HTTP协议消息的格式: 请求(request) 请求方法 路径 HTTP ...

  9. Web框架之Django_01初识(三大主流web框架、Django安装、Django项目创建方式及其相关配置、Django基础三件套:HttpResponse、render、redirect)

    摘要: Web框架概述 Django简介 Django项目创建 Django基础必备三件套(HttpResponse.render.redirect) 一.Web框架概述: Python三大主流Web ...

随机推荐

  1. C#将List<>转换为Json,将DataSet转成List<T>

    转换  参考:https://blog.csdn.net/u011176794/article/details/52670339 参考:https://blog.csdn.net/my98800/ar ...

  2. Java第一次考试作业

    这次考试感觉自己充分的意识到自己的不足,对于Java没有系统的理解,敲程方面也有很大问题,本次程序题目为ATM机的账户记录Account有账户的唯一性标识,用户的姓名,操作日期(Date),操作类型, ...

  3. sourceInsight工具移除不掉项目 source Insight Add and Remove Project Files

    问题描述: sourceInsight创建的项目,有时候会遇到Remove Project 报错,移除不成功的情况. 解决办法: 进入到sourceinsight的安装目录.删除掉保存的工程文件信息即 ...

  4. 使用sqoop往hdfs中导入数据供hive使用

    sqoop import -fs hdfs://x.x.x.x:8020 -jt local --connect "jdbc:oracle:thin:@x.x.x.x:1521:testdb ...

  5. 关于toolchain(工具链)的一点知识

    之前一直觉得toolchain是个高大上的东西,现摘录 uClibc中的FAQ以助理解. A toolchain consists of GNU binutils, the gcc compiler, ...

  6. Unity shader学习之渐变纹理

    渐变纹理,及使用纹理来存储漫反射光照的结果,这种技术在游戏<军团要塞2>中流行起来,它也是由Valve公司(提出半兰伯特光照技术的公司)提出来的,他们使用这种技术来渲染游戏中具有插画风格的 ...

  7. v1版本

    <?php use yii\helpers\Html; use yii\helpers\Url; use yii\widgets\DetailView; use yii\grid\GridVie ...

  8. python type的用法

    目录 描述 语法 用法 type和isinstance Type和Object 描述 python的 type 函数有两个用法,当只有一个参数的时候,返回对象的类型.当有三个参数的时候返回一个类对象. ...

  9. sqlyog连接Linux上的mysql报错误号码2013,错误号码1130的解决办法

    sqlyog连接Linux上的mysql报错误号码2013,错误号码1130的解决办法 1.报错误号码2013,可能是端口号不是默认的3306,需要改成对应的,检查命令是: [root@host et ...

  10. docker log directory

    Ubuntu - /var/log/upstart/docker.log Boot2Docker - /var/log/docker.log Debian GNU/Linux - /var/log/d ...