Python Web框架
本节对Python Web框架学习
一、MTV
Model:	存放所有数据库相关文件
Template:模板文件,存放html文件
View:	业务处理,即函数文件
二、MVC
model:		存放数据库相关文件
view:		存放所有的html文件
controler:	存放所有的函数文件
三、Django
Django基于MTV模式的web框架
1、下载安装
https://www.djangoproject.com/download/
2、创建项目
django-admin  startproject  django_p01
./django_p01
	  /django_p01
				    __init__.py
				    settings.py
				    urls.py
				    wsgi.py
	  /manage.py
3、启动项目
python manage.py runserver 127.0.0.1:8000 Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.
December 18, 2017 - 22:42:56
Django version 1.8.17, using settings 'django_p01.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
4、访问项目
浏览器输入:127.0.0.1:8000显示以下内容表示项目启动成功

5、项目流程
django访问流程如图:

a.创建Django工程
django-admin startproject django_p01
./django_p01 ##项目名称
/django_p01 ##和项目同名二级目录,用于整个程序配置
__init__.py ##
settings.py ##程序配置文件
urls.py ##URL对应关系配置文件
wsgi.py ##Socket内部创建,遵循一定wsgi规则,线上UWSGI+Nginx
/manage.py ##Django程序管理(python manage.py /python manage.py startapp xx/python manage.py migrate/python manage.py makemigrations) manage.py——>settings——>urls——>views
b.创建app
python manage.py startapp cmdb
admin.py ##后台管理界面
migrations ##记录数据库相关变更(DDL)
models.py ##数据库相关文件内容,数据库字典定义,ORM
tests.py ##单元测试
views.py ##函数内容,实际操作业务逻辑代码
__init__.py
apps.py ##配置当前app
新加app,需要在settings加载app名称
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'cmdb',
)
c.静态文件路径配置
配置文件:settings.py
STATICFILES_DIR=(
os.path.join(BASE_DIR,'static'),
)
d.模板路径配置
配置文件:settings.py
TEMPLATES = [
{
'DIRS': [os.path.join(BASE_DIR, 'templates')],
},
]
e.相关内容注释
配置文件:settings.py
注释CSRF
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)
f.定义路由规则
需要在urls.py中导入相应应用模块(from cmdb import views),然后在urls.py中建立索引、函数对应关系
配置文件:urls.py
from cmdb import views
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^login/',views.login)
]
g.定义视图函数
配置文件:views.py
from django.shortcuts import render
from django.shortcuts import redirect
from django.shortcuts import HttpResponse
# Create your views here. def login(request):
if request.method=='POST':
user=request.POST['user']
password=request.POST['password']
if user=='tom' and password=='':
return redirect('http://www.baidu.com')
else:
return render(request,'login.html') ##request.method有两种获取请求数据的方式:get/post
request.GET.get('',None) ##获取请求发送来的数据
request.POST.get('',None) ##获取请求发送来的数据
##返回请求数据的方式
return HttpResponse("字符串")
return render(request,"HTML模板路径")
return redirect("URL") ##本地URL需要加/URL名称
h.模板渲染
函数内容:
return render(request,'login.html',{'username':"tom",list=[1,2,3]})
模板内容:
{{变量名}}
{{dict.k1}}
{% for row in user_list%}
xxx
{% endfor %}
{{% if true %}}
xxx
{{% else %}}
xxx
{{ endif }}
6、其他说明
a.settings.py内容说明
"""
Django settings for django_p01 project. Generated by 'django-admin startproject' using Django 1.8.17. For more information on this file, see
https://docs.djangoproject.com/en/1.8/topics/settings/ For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.8/ref/settings/
""" # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
##项目基目录
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '#(scd$4xhwyv35o37-ud)5+ctz_629-afv9u42==_n7f^+^' # SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True ALLOWED_HOSTS = [] # Application definition APP列表 INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'cmdb',
) MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
)
##URLS根目录
ROOT_URLCONF = 'django_p01.urls'
##templates路径
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',
],
},
},
] WSGI_APPLICATION = 'django_p01.wsgi.application' # Database
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases
##数据源配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
} # Internationalization
# https://docs.djangoproject.com/en/1.8/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.8/howto/static-files/
##静态文件路径,js/css等
STATIC_URL = '/static/'
STATICFILES_DIR=(
	os.path.join(BASE_DIR,'static'),
)
b.urls.py内容说明
主要配置函数、视图映射关系
"""django_p01 URL Configuration The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.8/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import include, url
from django.contrib import admin
from cmdb import views ##需导入项目函数文件名称 urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^login/',views.login)
]
c.views.py内容说明
from django.shortcuts import render
from django.shortcuts import redirect
from django.shortcuts import HttpResponse
# Create your views here. def login(request):
if request.method=='POST':
user=request.POST['user']
password=request.POST['password']
if user=='tom' and password=='':
return redirect('http://www.baidu.com')
else:
return render(request,'login.html')
Python Web框架的更多相关文章
- python web框架——扩展Django&tornado
		
一 Django自定义分页 目的:自定义分页功能,并把它写成模块(注意其中涉及到的python基础知识) models.py文件 # Create your models here. class Us ...
 - 异步非阻塞IO的Python Web框架--Tornado
		
Tornado的全称是Torado Web Server,从名字上就可知它可用作Web服务器,但同时它也是一个Python Web的开发框架.最初是在FriendFeed公司的网站上使用,FaceBo ...
 - 微型 Python Web 框架 Bottle - Heroin blog
		
微型 Python Web 框架 Bottle - Heroin blog 微型 Python Web 框架 Bottle
 - 一步一步理解 python web 框架,才不会从入门到放弃
		
要想清楚地理解 python web 框架,首先要清楚浏览器访问服务器的过程. 用户通过浏览器浏览网站的过程: 用户浏览器(socket客户端) 3. 客户端往服务端发消息 6. 客户端接收消息 7. ...
 - 浅谈Python web框架
		
一.Python web框架 Web Framework,Ruby的世界Rails一统江湖,而Python则是一个百花齐放的世界,各种micro-framework.framework不可胜数,不完全 ...
 - python web框架介绍对比
		
Django Python框架虽然说是百花齐放,但仍然有那么一家是最大的,它就是Django.要说Django是Python框架里最好的,有人同意也有人 坚决反对,但说Django的文档最完善.市场占 ...
 - “脚踢各大Python Web框架”,Sanic真有这能耐么?
		
在Github上,Sanic第一句介绍语就是: "Sanic is a Flask-like Python 3.5+ web server that's written to go fast ...
 - Python Web框架 tornado 异步原理
		
Python Web框架 tornado 异步原理 参考:http://www.jb51.net/article/64747.htm 待整理
 - python三大web框架Django,Flask,Flask,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
		
Python几种主流框架 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python We ...
 
随机推荐
- python语言 第一个程序
			
print("hello word!") # for i in range(1, 10):# for j in range(1, 10):# print(j, "x&qu ...
 - A:点排序-poj
			
A:点排序 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个点的坐标(x, y),在输入的n个点中,依次计算这些点到指定点的距离,并按照距离进行从小到大排序,并且输出点的坐标 ...
 - java版Web Socket,实现消息推送
			
# web socket是什么? WebSocket协议是基于TCP的一种新的网络协议. 它实现了浏览器与服务器全双工(full-duplex)通信,允许服务器主动发送信息给客户端. ## 用途 实时 ...
 - 【原创精品】程序员最强大的利器——电子笔记本的思考(1)(ver0.3)
			
[原创精品]程序员最强大的利器,本文以下内容全都是作者EverStenis(胡佳吉)的原创,未经授权不得转载,抄袭必究. 我想问大家一个问题,对于我们程序员来说,在我们的武器工具库中,最强大的一件利器 ...
 - 实战-Mysql主从复制
			
前言: Mysql内建的复制功能是构建大型高性能应用程序的基础.由于目前mysql的高可用性架构MMM和MHA均建立在复制的基础之上,本文就mysql主从复制进行实战描述,希望对读者提供帮助.之前 服 ...
 - linux shell中单引号、双引号和没有引号的区别
			
单引号: 可以说是所见即所得:即将单引号的内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么. 双引号: 把双引号内的内容输出出来:如果内容中有命令.变量等,会先把变量.命令解析出结果,然 ...
 - javascript 45种缓动效果BY司徒正美
			
javascript 45种缓动效果 参数 类型 说明 el element 必需,为页面元素 begin number 必需,开始的位置 change number 必需,要移动的距离 durati ...
 - 机器学习实践之K-近邻算法实践学习
			
关于本文说明,本人原博客地址位于http://blog.csdn.net/qq_37608890,本文来自笔者于2017年12月04日 22:54:26所撰写内容(http://blog.csdn.n ...
 - opencv批处理提取图像的特征
			
____________________________________________________________________________________________________ ...
 - CentOS安装java and javac(java执行环境和开发环境)
			
[root@localhost usr]# yum install java Loaded plugins: fastestmirror, refresh-packagekit, security R ...