python字符串对象的find()和index()方法的区别?
index()和find()函数都是用于查询字符串,但是index()在没有找到子串的时候会有报错抛出异常,影响程序执行。find()在找不到目标子串时不会抛出异常,而是会返回-1,因此不会影响程序的执行。
函数的引入(绑定)不需要加括号,函数的调用需要加括号, 用于urls文件中路径绑定指定的函数
从今天开始,用django做web开发要转换立场,我现在开发的是服务器,要时刻以服务器的身份提醒自己。
1海里(nmi) = 1.852千米
如果想要实现某一个功能,可以在网上查询想要实现的功能的接口API: 比如说想要查询电话号码的归属地:在网上查: 电话归属地查询API 淘宝 ,得到结果:
http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443
这是get的请求方式,?后边就是传递的参数,可以修改参数查询自己想要查询的号码的归属地。实现其他功能也是一样的,可以查询API接口。
python web框架有:
Django,flask,tornado,web.py………
为什么Django应用的最为广泛:
1、有完善的ORM关系映射
2、有强大的路由映射功能
3、有完善的视图模板的实现
4、有健全的后台管理系统
5、有强大的缓存支持
……
企业级web开发,Java还是是王道,PHP比java开发的效率快,python的开发效率最高,,从运行速度,运维的成本,高可扩展性来说,还是java更加的优秀。
模块和框架的区别?
模块:为了完成某一件事,或者某些事,而封装的代码,提供了一些封装好的方法和属性
框架:提供方法属性的同时,也提供处理事务的业务逻辑,扩展了代码
cms(content manager system)内容管理系统, Django就是一个内容管理系统, Django的历史:劳伦斯集团的下属子公司===新闻出版社想要开发一个内容管理系统,实时地发布新闻抢占市场,于是让公司开发团队开发一个内容管理系统,正好当时这个开发团队中大部分都是Python高手,所以就用Python开发了,所有就有了django的出现。
用django做web开发的时候最好创建一个虚拟环境,方便将来的项目部署的时候可以在这个虚拟环境中一键导出该项目需要的模块,如果用全局环境的话会存在很多的模块,筛选出该项目需要的模块的话会比较麻烦,创建虚拟环境页面下面两个复选框不要勾选,勾选的话会把所有的包拷过去
创建完虚拟环境之后第一件事是下载django: 命令是 pip install django==1.11, 如果不限制版本号的话会默认下载最新的版本2.0,但是公司开发并不使用最新的版本,1.11是长期支持的版本。如果安装错版本了就把django卸载了重新安装,命令式: pip uninstall django
django只是虚拟环境中的一个模块,与虚拟环境没有什么关系
查看django版本命令是: 1.django-admin --version
2. 进入Python: import django
django.get_version()
如果返回安装Django的版本号,则认为成功安装!!!!
创建第一个django项目的命令是terminal: django-admin startproject mysite(项目名称)
django项目一般都是用于管理整个项目,一般不在项目中做代码开发,实现功能的话需要自定义模块
创建给自定义模块的命令是terminal: django-admin startapp blog(模块名称)
启动Django项目的命令是terminal: python manage.py runserver
创建一个自定义的子模块步骤:
1.命令 terminal cd到项目名称下面,django-admin startapp 功能模块名称
2. 定义功能模块中的urls和views模块内容, 并将自定义模块和模块中的urls注册到根模块中,将自定义的模块注册到跟模块中的setting配置文件中的INSTALLED_APPS列表中,
将urls路由注册到跟模块中的urls文件中,要先从django中引入include, 然后在一级路由中配置一个二级路由
在自定义的模块中完成urls和views的映射
第一个django项目创建成功后,项目结构如下:
|-- mysite # 表示项目名称
|-- mysite # 根模块,根模块跟项目名称保持一致
|-- __init__.py # 模块描述文件
|-- settings.py # 项目的配置文件
|-- urls.py # 根路由模块
|-- wsgi.py # django实现wsgi
|-- manage.py # 该文件是项目的命令文件,不需要我们修改
启动Django项目:
cd 项目主目录中来
python manage.py runserver
PS:
python manage.py runserver [port]
python manage.py runserver [ip:port]
注意:如果想使用ip来访问项目,那么首先应该在配置文件(settings.py)中配置ALLOWHOSTS=["*"]
怎么修改django的语言包:
4、settings.py
LANGUAGE_CODE = 'zh-Hans'
这是简体中文。
在Django中创建一个子模块(功能模块)项目结构如下:
cd 项目主目录
django-admin startapp <子模块名称>
|-- mysite # 项目名称
|-- mysite # 根模块
|-- __init__.py # 模块描述文件
|-- settings.py # 项目的配置
|-- wsgi.py # 实现了wsgi web网关接口
|-- blog # 子模块
|-- migrations # 同步数据的迁移文件的文件夹
|-- __init__.py # 模块描述文件
|-- admin.py # 后台管理系统用来管理子模块中的模型类的文件
|-- views.py # 子模块的视图文件
|-- urls.py # 需要我们创建,子模块的路由文件
|-- models.py # 定义模型类
|-- tests.py # 测试文件
|-- apps.py # 定义子模块项目项的文件
|-- manage.py # 项目的命令文件
当子模块创建完成后,要求必须执行两项操作(重点)
1、在根模块的settings.py配置文件中INSTALLED_APPS=["子模块名称"]
2、创建子路由,之后交给根路由来管理
子模块中的urls和views都需要引入djnago中相应的模块:
urls:
from django.conf.urls import url from . import views
views:
from django.http import HttpResponse
web软件的处理流程(软件的架构)
在传统的web软件,流行MVC的处理流程
M(model) 模型 定义:类、以及跟数据库相关的代码
V(view) 视图 也就是页面
C(controller) 控制器 功能:接受参数,分发请求
这种软件架构的目的是为了解耦合~~~~
提高代码的健壮性、可扩展性和维护性
分层管理的主要目的是实现:高内聚,低耦合
Django认为MVC这种传统的软件处理流程显得有点冗余,对MVC进行升级,得到了它的处理流程(软件架构)--MVT
M(model) 模型层
V(view) 视图层
T(templates) 模板层
原本的控制器中分发请求的功能,交给了路由
原本的控制器中接受参数的功能,交给了视图
一级访问目录后边不要加$符号
get方式请求的时候一般都会在最后一级访问对象后边自动加上 /, 而其他请求方式不会自动加/,所以在urls中定义最后一级路由的时候要在正则表达式的最后加上/结尾