web框架django初探
Web框架介绍
一般会分为两部分:服务器程序和应用程序。服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理。应用程序则负责具体的逻辑处理。为了方便应用程序的开发,就出现了众多的Web框架,例如:Django、Flask、web.py 等。不同的框架有不同的开发方式,但是无论如何,开发出的应用程序都要和服务器程序配合,才能为用户提供服务。这样,服务器程序就需要为不同的框架提供不同的支持。这样混乱的局面无论对于服务器还是框架,都是不好的。对服务器来说,需要支持各种不同框架,对框架来说,只有支持它的服务器才能被开发出的应用使用。这时候,标准化就变得尤为重要。我们可以设立一个标准,只要服务器程序支持这个标准,框架也支持这个标准,那么他们就可以配合使用。一旦标准确定,双方各自实现。这样,服务器可以支持更多支持标准的框架,框架也可以使用更多支持标准的服务器。
WSGI(Web Server Gateway Interface)是一种规范,它定义了使用python编写的web app与web server之间接口格式,实现web app与web server间的解耦。
Web框架之Django
介绍
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。
Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:
- 模型(Model),即数据存取层
处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
- 模板(Template),即表现层
处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
- 视图(View),即业务逻辑层
存取模型及调取恰当模板的相关逻辑。模型与模板之间的桥梁。

安装
pip install django
使用
1.创建项目
终端命令:django-admin startproject mysite 创建项目
IDE创建Django程序时,本质上都是自动执行上述命令
2.程序目录
mysite 项目目录
├── manage.py django启动管理程序
└── mysite
├── init.py
├── settings.py 项目的配置文件
├── urls.py 路由文件
└── wsgi.py wsgi有多重一种uwsgi和wsgi,你用那种wsgi来运行Django,一般不用改只有你用到的时候在改
3.创建app
Project和App概念:Project是一个大的项目,里面可以有多个app,app是项目的一个子项目
执行命令进行创建:
python manage.py startapp app01
目录:
app01
├── init.py
├── admin.py
├── apps.py
├── migrations
│ └── init.py
├── models.py 数据库相关配置
├── tests.py 测试脚本
└── views.py 存放处理用户请求的函数,由urls.py调度
4.生成数据库,运行django
1.同步数据库
python manage.py makemigrations #生成配置
python manage.py migrate #同步表到数据库
2.python manage.py runserver 8000
5.路由
修改urls.py,写url的路有规则
from django.conf.urls import url
from django.contrib import admin
# 导入app下的view函数
from mysite import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
# 当用户访问http://127.0.0.1:端口号的时候之间交给myiste下面的views里的index函数来处理
url(r'^$', views.index),
]
6.视图view
修改views.py,添加index的函数,处理http请求
# Django 在返回的时候需要一层封装,需要导入HttpResponse
from django.shortcuts import render,HttpResponse# Create your views here.
def index(request):#使用HttpRespons 封装返回信息return HttpResponse('<h1>hello world!!!</h1>')
django中的路由系统和其他语言的框架有所不同,在django中每一个请求的url都要有一条路由映射,这样才能将请求交给对一个的view中的函数去处理。其他大部分的Web框架则是对一类的url请求做一条路由映射,从而是路由系统变得简洁。
- 返回html页面
1.在templates里创建index.html页面
内容:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>第一个django程序</title>
</head>
<body>
<h1>Hello world!!</h1>
</body>
</html>2.修改mysite里的views.py的index函数
from django.shortcuts import render,HttpResponse
# Create your views here.
def index(request):
# return HttpResponse('<h1>hello world!!!</h1>')
return render(request,'index.html')
#找到index.html
#读取index.html返回给用户
7.注册app
把我们新定义的app加到settings.py中的INSTALL_APPS中
INSTALLED_APPS = ('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app01',
)
8.运行django
python manage.py runserver
9.django基本命令
1.创建django命令
django-admin.py startproject mysite(程序名)
2.创建django的app
python manage.py startapp cmdb(app的名字)
或 django-admin.py startapp cmdb(app的名字)
3.同步数据库
python manage.py syncdb
注意:Django 1.7.1及以上的版本需要用以下命令
python manage.py makemigrations
python manage.py migrate
4.调试模式
python manage.py runserver 8001
# 监听所有可用 ip (电脑可能有一个或多个内网ip,一个或多个外网ip,即有多个ip地址)
python manage.py runserver 0.0.0.0:8000
5.清除数据库
python manage.py flush
6.创建超级管理员
python manage.py createsuperuser
按照提示就ok
7.修改管理员密码
python manage.py changepassword username(你当时设定的用户名)
8.导入和导出数据
python manage.py dumpdata appname > appname.json
python manage.py loaddata appname.json
9.进入数据库
python manage.py dbshell
10.更多命令
python manage.py -h
模版语言:
{{ item }}
{% for item in item_list %} {{ item }} {% 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 }}
转载于:https://www.cnblogs.com/pycode/p/django01.html
web框架django初探相关推荐
- python搭建django框架,Python之Web框架Django项目搭建全过程
Python之Web框架Django项目搭建全过程 IDE说明: Win7系统 Python:3.5 Django:1.10 Pymysql:0.7.10 Mysql:5.5 注:可通过pip fre ...
- Python Web框架Django学习(二)
python web框架Django学习(二) 目录: 三.Django创建APP 四.创建登录页面,实现用户交互,后台管理用户(非数据库方式) ========================= ...
- Web框架Django使用概览
Web框架Django使用概览 标签: django python 1 开始一个新项目 django的安装比较简单,在命令行里执行下面的命令. pip install django 为了能使用djan ...
- python的Web框架Django运行报错:Invalid HTTP_HOST header: 'xxx.xx.xxx.xxx:8000'. You may need to add 'xxx.xx'
python的Web框架Django运行报错:Invalid HTTP_HOST header: 'xxx.xx.xxx.xxx:8000'. You may need to add 'xxx.xx' ...
- 开源web框架django知识总结(二十二)
开源web框架django知识总结(二十二) 支付 提示: 如果用户选择的支付方式是 "支付宝" ,在点击<去支付>时对接支付宝的支付系统. 支付宝介绍 支付宝开放平台 ...
- django 业务逻辑写在view里吗?_Python Web框架Django简介
引言 我们都知道,Django是一种基于Python的Web开发框架. 那么,什么是Web开发?Web开发指的是开发基于B/S架构,通过前后端的配合,将后台服务器的数据在浏览器上展现给前台用户的应用. ...
- web框架Django一
一.django安装 # pip 安装 pip3 install Django# 克隆下载最新版本 git clone https://github.com/django/django.git# 导入 ...
- Python web框架Django学习(1)
2019独角兽企业重金招聘Python工程师标准>>> 1.Django简介 (1)Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的 ...
- Python自动化开发学习的第十一周----WEB框架--Django基础
WEB框架的本质 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python #coding:utf-8imp ...
最新文章
- 乌鸦可能是灵长类动物以外最聪明的动物
- 线程访问临界区的问题 实例,需解决
- 机器人学习--定位算法AMCL全局定位方案
- Spring MyBatis多数据源分包
- 数据库---练习题(45道)
- 1 ~ express ~ 初始化。安装第三方模块express。中间件
- bash获得相对路径的文件信息
- “谁在蹭热度?”小米冰箱由海尔代工?双方齐声明:没有进行任何合作
- 全面超越人类!Google称霸SQuAD,BERT横扫11大NLP测试
- NetBeans Support Weblog
- 二进制转格雷码c语言编程,格雷码简介及格雷码与二进制的转换程序
- 键帽图纸_如何更换机械键盘的键帽(以便它可以永远存在)
- 如何免费下载B站视频!!!实测可用!!!
- WordPress多功能主题 The7 更新至 v10.4.3 – 已激活汉化版
- 资本资产定价模型CAPM
- html 播放360全景图,讯网360全景展示产品-html5全景图-flash全景展示-360度全景图制作...
- 定积分求解方法——换元积分法
- OFD文件、pdf文件相互转换、ofd文件在线预览
- d29天 上传电影练习 UDP使用 ScketServer模块
- 如何向本地 PAC 中添加网站
热门文章
- 曝台积电芯片要涨价:2022年至少上调10%
- N秒钟后自动跳转的html页面,javascript
- JObject 用法 、JProperty 用法、JArray 用法 Linq 转 Json
- Spring Annotation(@Autowire、@Qualifier)
- Freescale MC9S08AW60汇编学习笔记(五)
- CSS3学习之 animation 属性
- 解决打不开 RSA 密钥容器 即:加密web.config中的内容
- 戏说模式-追MM与设计模式 (转载)
- [导入]防止你的日志页被人iframe
- 现在编程语言的两大主流