python的Web框架:初识Django
web应用程序 本质 socket服务端 浏览器本质是一个socket客户端
1. 服务器程序 socket请求 接受HTTP请求,发送HTTP响应。
比较底层,繁琐,有专用的服务器软件,如:Apache Nginx
2. 应用程序,实现具体逻辑
WSGI:应用程序和服务器程序之间的标准
符合WSGI:
需要开发者实现一个响应
environ:包含了所有HTTP请求信息的dict对象
start_response:一个发送HTTP响应的函数
简单的符合WSGI的样式code
def app(environ, strat_response):
strat_response('200 OK',[('Content-Type','text/html')])
return[b'<h1>Hello world</h1>']
web 应用框架的设计模式 MTY MVC
MTV:
M:models,模型:负责业务数据对象与数据库对象
T:templates,模板:负责如何把数据展示给用户
V:views,视图:负责业务逻辑
MVC:
M:models,模型:负责业务数据对象与数据库对象
V:views,视图:负责与用户交互的页面
C: 控制器:负责接收用户的输入调用模型与视图
**都是为了解耦**
Django工作准备
1、环境准备:
- Ubuntu
- python 3.5 +
- pycharm 2017.1.5 +
- MySQL
2、python虚拟环境的重要性
- 什么是python虚拟环境
通过工具,将系统上的python复制了一份
- 为什么要用虚拟
1.不会污染系统环境
2.不同的项目环境的隔离
- 创建虚拟环境
linux-code:
提供的Ubuntu设置好了,默认会创建在根目录下的virtualenvs目录下
whereis <appname> 查看软件安装的路径
1.查看当前有哪些虚拟环境: workon
2.创建虚拟环境: mkvirtualenv -p /usr/bin/python3(path) envname
3.进入虚拟环境: workon envname
4.退出虚拟环境: deactivate
5.删除虚拟环境: rmvirtualenv envname
3、Django安装
pip install django
4、简单操作
1.创建项目
django-admin startproject <project name>
查看 crm文件(可能需要安装): tree
项目根目录:manage.py
项目内文件的作用:
manage:Django的命令行工具
settings:项目的配置文件。
urls:路由申明
wsgi:接口
2.启动项目:
项目的根目录下运行
python manage.py runserver 0.0.0.0:8000
如果访问不了,需要再settings内配置:
ALLOWEN_HOSTS = ['*'],代表允许的域名
此时可以在网页上打开127.0.0.1::8000,会出现Django的界面,说明配置成功
5.manage管理项目
创建应用,在根目录下创建应用
python manage.py startapp teacher(应用名称)
code区域
新建views.py文件,并写上第视图函数
from django.http import HttpResponse 视图函数
def index(request):
return HttpResponse('hello,这是我的第一个django项目!!')
在urls.py内操作
导入视图,添加一条路由
from . import views urlpaterns = [
path('index/', views.index)
#index后需要加上/,后面参数对应的views内的函数
]
现在可以在浏览器打开对应的地址,http://127.0.0.1:8000/index
打开后可以看到下面这段文字。说明我们的代码没有问题。
hello,这是我的第一个django项目!!
初识Django,到此。
python的Web框架:初识Django的更多相关文章
- python的Web框架,Django的ORM,模型基础,MySQL连接配置及增删改查
Django中的ORM简介 ORM概念:对象关系映射(Object Relational Mapping,简称ORM): 用面向对象的方式描述数据库,去操作数据库,甚至可以达到不用编写SQL语句就能够 ...
- python的Web框架,Django自定义过滤器及标签
代码布局 有的时候框架给的过滤器不够用,需要自定义一些过滤器,所以就需要我们自己来定义一些过滤器等 自定义代码放置的路径 某个app特用(独有)的 - app 目录下的 templatetags文件夹 ...
- python的Web框架,Django模型系统二,模型属性,及数据库进阶查询
原始数据接上篇文章来操作.可能需要查看后才能懂.点击这里查看 1.常用的模型字段类型 官方文档:https://docs.djangoproject.com/en/2.1/ref/models/fie ...
- python常用web框架性能测试(django,flask,bottle,tornado)
测了一下django.flask.bottle.tornado 框架本身最简单的性能.对django的性能完全无语了. django.flask.bottle 均使用gunicorn+gevent启动 ...
- python的Web框架,Django框架中的请求与响应
请求与响应 简单流程图 我们先来了解一个请求与响应的大概流程 视图函数接受到的request到底是个什么对象呢? 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的 ...
- python的Web框架,Django模板变量,过滤器和静态文件引入
HTML模板的路径查找 在setting中设置查找路径: #默认的查找在此处填写,优先级最高,为在manage.py的同级路径中,添加(常规是template)文件夹,在(template)文件夹中配 ...
- python的Web框架:Django路由系统以及模板导入
Django的路由系统 当一个请求来到时 当一个请求来到时 1.首先到项目目录下的urls.py(根URLconf模块)中,查找路由规则: 2.根URELcof模块,里面定义了 urlpatterns ...
- python的Web框架,Django模板标签及模板的继承
模板标签 在传递数据的时候,会有大量的数据展示在浏览器上,而数据会是动态变化的,在html的编写中,数据也是需要动态的,而不能是写死的,如果动态展示呢. 给定的例子数据 views传递数据给html ...
- Python开发【第二十一篇】:Web框架之Django【基础】
Python开发[第二十一篇]:Web框架之Django[基础] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5237704.html Python之 ...
- Python之Web框架Django
Python之Web框架: Django 一. Django Django是一个卓越的新一代Web框架 Django的处理流程 1. 下载地址 Python 下载地址:https://www.pyt ...
随机推荐
- js五道经典练习题--第三道实现购物车功能
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- DXP中插入LOGO字体方法(2)
利用字体制作软件font creator program 4.1 1.文件-->新建 2.右键---->属性 3.去掉黑框和黑底,删除即可! 4.选 工具--->导入图像,载入字体图 ...
- HDU 1465 2045 已知结果往前推
1465 不容易系列之一 Time Limit: 1000 MS Memory Limit: 32768 KB 64-bit integer IO format: %I64d , %I64u Java ...
- mysql 多个and的简写
select * from test where name='zj' and sex='2'; 我以前也经常用这种写法,今天爬出去看了一下某位人写的,用了一下也挺好用的 下面这种写法,一一对应关系
- Facebook内部报告:争取青少年用户的鸡贼小技巧
翻译:吴祺深 欢迎访问网易云社区,了解更多网易技术产品运营经验. 去年十月,Facebook收购了TBH,最后却关闭了这款APP,不过一则内部报告透露了,通过这款流行的投票APP,这家公司学会了如何去 ...
- [HEOI2016/TJOI2016]字符串(后缀数组+二分+主席树/后缀自动机+倍增+线段树合并)
后缀数组解法: 先二分最长前缀长度 \(len\),然后从 \(rnk[c]\) 向左右二分 \(l\) 和 \(r\) 使 \([l,r]\) 的 \(height\geq len\),然后在主席树 ...
- spring boot 中使用LUA脚本
编写LUA脚本 该脚本功能:先检查redis中某个key的值是否与期望的值V1一致,如果一致则将其修改为新的值V2并返回true,否则返回false.其实就是CAS. local current = ...
- JS生成某个范围的随机数【四种情况详解】
JS没有现成的函数,能够直接生成指定范围的随机数. 但是它有个函数:Math.random() 这个函数可以生成 [0,1) 的一个随机数. 利用它,我们就可以生成指定范围内的随机数. 而涉及范围的 ...
- http://www.vaikan.com/docs/jquery.form.plugin/jquery.form.plugin.html#getting-started
http://www.vaikan.com/docs/jquery.form.plugin/jquery.form.plugin.html#getting-started Jquery.Form 异步 ...
- google浏览器高清壁纸保存
谷歌浏览器 扩展程序里边 有一个主题壁纸 好多不错的,并且是高清大图!!! 主题应用市场: https://chrome.google.com/webstore/category/themes?hl= ...