为您找到搜索结果:3305个
python3之Django多数据库
1、定义数据库在django项目中,一个工程中存在多个APP应用很常见;有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接。在Django的setting中使用DATABASES设置定义数据库,可以将数据库映射到特定的别名字典中;DATABASES定义的是要给嵌套字典,该设置必须配置default默认数据库。默认使用SQLite进行单一数据库设置:DATABASES={'default':{'ENGINE':'django.db.backends.sqlite3','NAME':'mydatabase',}}如不使用默认数据库定义可以将默认配置为空字典形式:'default':{}(1)DATABASES内部选项:ATOMIC_REQUESTS:为True时数据库事务包装每个视图,默认为FalseAUTOCOMMIT:为False时禁用Django事务管理,默认为TrueENGINE:设置数据库类型'django.db.backends.postgresql''django.db.backends.mysql''django.db.backends.sqlite3'...
django生产环境搭建(uWSGI+django+nginx+python+MySQL)
1、系统环境,必要知识#cat/etc/redhat-releaseCentOSLinuxrelease7.5.1804(Core)#uname-r3.10.0-862.3.2.el7.x86_64暂时关闭防护墙,关闭selinux:#systemctlstopfirewalld.service#setenforce0#getenforcePermissive准备知识:django:一个基于python的开源web框架。uWSGI:一个基于自有的uwsgi协议,wsgi协议和http服务协议的web网关nginx:高性能的代理web服务器wsgi.py:django项目自带的wsgi接口文件(位于:项目/项目名/wsgi.py)整个项目流程:首先客户端通过浏览器访问服务器资源;nginx作为对外服务的端口(80),nginx接收到客户端http请求后会解包分析,如果是静态文件就去配置的静态文件中查找资源并返回给客户端,如果是动态资源,nginx就通过配置文件将请求传递给uwsgi处理,并转发给uwsgi,wsgi根据请求调用django工程的文件和函数,处理后django将返回值交给w...
python3之Django内置模板标签和过滤器
一、模板标签内置标签:1、autoescape控制当前的自动转义行为,此标记采用on或者off作为参数,并确定自动转义是否在块内有效。该块以endautoescape结束标签关闭。views:defindex(request):returnrender(request,'app02/index.html',{'title':'mypage','user':'<ul>dd</ul>'})html:<body>{{user}}#默认为不转义#}{{user|safe}}#转义HTML标签#}{%autoescapeon%}#转义HTML标签后,按原样输出#}转义:{{user}}{%endautoescape%}<br/>{%autoescapeoff%}不转义:{{user}}{%endautoescape%}</body>outing:<ul>dd</ul> dd转义:<ul>dd</ul>不转义:dd2、block定义可以被子模板覆盖的块,为模板继承时使用3、commen...
python3之Django基础篇
一、Django基础Django是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!Django的特点:强大的数据库功能:拥有强大的数据库操作接口(QuerySetAPI),也能执行原生SQL自带强大后台:网站拥有一个强大的后台,轻松管理内容优雅的网址:用正则匹配网址,传递到对应函数,随意定义。模版系统:易扩展的模版系统,设计简易,代码,样式分开设计,更容易管理。缓存系统:与memcached,redis等缓存系统联用,更出色的表现,更快的加载速度。国际化:完全支持多国语言应用,允许定义翻译的字符,轻松翻译成不同国际的语言。Django目录结构:urls.py:网址入口,关联到对应的Views.py中的一个函数,访问网址对应的函数。views.py:处理用户发出的请求,从urls.py中对应过来,通过渲染templates中的网页可以将显示内容,比如登陆后的用户名,数据,输出到网页。models.py:与数据库操作相关,存入或读取数据时用到这个templates文件夹:views.py中的函数渲染templates中的HTML模版,得到动态内容网页,可以...
django邮件
1、邮件变量(djangosettings.py)ADMINS=[('JOHN','JOHN@example.com'),('zhang','zhang@example.com')] #设置收件人名单DEFAULT_CHARSET=utf-8 #设置默认邮件字符类型DEFAULT_FROM_EMAIL= #设置站点管理员的默认邮件地址EMAIL_BACKEND #设置发送电子邮件的后端接口EMAIL_FILE_PATH #设置邮件后端输出文件路径EMAIL_HOST #设置发送电子邮件的主机EMAIL_HOST_PASSWORD #设置邮件登陆密码EMAIL_HOST_USER #设置邮件登陆用户名EMAIL_PORT #设置邮件端口EMAIL_SSL_CERTFILE #设置指定证书文件路径EMAIL_SSL_KEYFILE #设置置顶证书密钥路径EMAIL_SUBJECT_PREFIX #设置邮件主题前缀EMAIL_TIMEOUT #设置超时时间EMAIL_USE_LOCALTIME=True #是否以date本地时区发送邮件SMTP头EMA...
python3之MongoDB
1、MongoDB简介MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。MongoDB旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。主要特点:MongoDB是一个面向文档存储的数据库,操作起来比较简单和容易。你可以在MongoDB记录中设置任何属性的索引(如:FirstName="Sameer",Address="8GandhiRoad")来实现更快的排序。你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。如果负载的增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上这就是所谓的分片。Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。MongoDb使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段。Mongodb中...
django文件上传
当django处理文件上传时,文件数据被打包封装在request.FILES中1、基本文件上传首先写一个form表单,它必须包含一个FileField文件字段:#forms.pyfromdjangoimportformsclassUploadFileForm(forms.Form):title=forms.CharField(max_length=50)file=forms.FileField()处理这个表单的视图将在request.FILES中收到文件数据,可以用request.FILES['file']来获取上传文件的具体数据,其中的键值'file'是根据form表单中字段file=forms.FileField()的变量名来的注意:request.FILES只有在请求方法为POST,并且提交请求的<form>具有enctype="multipart/form-data"属性时才有效,否则request.FILES将为空下面是一个接收上传文件的视图范例:#views.pyfromdjango.httpimportHttpResponsefromdjango.shortc...
django views视图
视图函数简称视图,本质上是一个简单的python函数,它接受web请求并且返回web响应;响应的内容可以是HTML网页、重定向、404错误、XML文档或图像等任何东西,但是,无论视图本身是个什么处理逻辑,最好都返回某种响应视图函数的代码写在哪都无所谓,只要它在你的python目录下面,但是通常我们约定将视图放置在项目或应用程序目录中的名为views.py的文件中。1、一个简单的视图下面是一个返回当前日期和时间作为HTML文档的视图:fromdjango.httpimportHttpResponseimportdatetimedefcurrent_datetime(request):now=datetime.datetime.now()html="<html><body>Itisnow%s.</body></html>"%nowreturnHttpResponse(html)让我们逐行分析一下上面的代码:首先,从django.http模块导入了HttpResponse类,以及python的datetime库接着,我们定义了current_d...
django URLconf调度程序
路由的编写方式是Django2.0和1.11最大的区别所在,Django官方迫于压力和同行的影响,不得不将原来的正则匹配表达式,改为更加简单的path表达式,但依然通过re_path()方法保持对1.x版本的兼容URL是web服务的入口,用户通过浏览器发送过来的任何请求,都会发送到一个指定的URL地址,然后被响应在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,django奉行DRY主义,提倡使用简洁、优雅的URL,没有.php这种后缀,它可以让你随心所欲的设计你的URL,不受框架束缚。1、概述URL路由在django项目中的体现就是urls.py文件,这个文件可以有很多个,但不能在同一目录下,实际上django提倡项目有个根urls.py,每个app下分别有自己的urls.py,集中又分治,是一种解耦的模式在新建一个django项目后,默认会自动为我们创建一个urls.py文件,它会默认创建一个admin后台的URLfromdjango.contribimportadminfromdjango.urlsimportpathurlpatterns=[path('adm...
django模型查询操作
一旦创建好了数据模型,Django就会自动为我们提供一个数据库抽象API,允许创建、检索、更新和删除对象操作下面的示例都是通过下面参考模型来对模型字段进行操作说明:fromdjango.dbimportmodelsclassBlog(models.Model):name=models.CharField(max_length=100)tagline=models.TextField()def__str__(self):returnself.nameclassAuthor(models.Model):name=models.CharField(max_length=200)email=models.EmailField()def__str__(self):returnself.nameclassEntry(models.Model):blog=models.ForeignKey(to=Blog,on_delete=models.CASCADE)headline=models.CharField(max_length=255)body_text=models.TextField()pub_...
django表单字段
在通过django.forms.Forms创建表单字段时,其中每个字段都有一些自定义的验证逻辑和一些其他钩子虽然表单字段的Field类主要使用在Form类中,但也可以直接实例化来使用它们,以更好的了解它们是如何工作的,每个Field的实例都有一个clean()方法,它接收一个参数,然后返回‘清洁的'数据或者抛出一个django.forms.ValidationError异常Field.clean(value)In[1]:fromdjangoimportforms#创建一个字段In[2]:f=forms.CharField()In[3]:f.clean('1')Out[3]:'1'In[4]:f.clean(1)Out[4]:'1'#CharField字段如果没空则抛出异常In[5]:f.clean('')ValidationErrorTraceback(mostrecentcalllast)clean()方法通常用来对数据进行验证和测试比较方便核心字段参数:每个Field类构造函数都可用这些参数1、requiredField.required:默认情况下,Field类都必须...
python3之Django表单(一)
1、HTML中的表单在HTML种,表单是在<form>...</form>种的元素,它允许用户输入文本,选择选项,操作对象等,然后发送这些数据到服务器表单元素允许用户在表单种输入内容如,文本域(textarea)、下拉列表、单选框(radio-buttons)、复选框(checkboxes)等。大多数情况下被用到的表单标签是输入标签(<input>),输入类型是由类型属性(type)定义的,大多数经常被用到的输入类型下面做简单介绍:(1)文本域(TextFields)文本域通过<inputtype="text">标签来设定,当用户要在表单种输入字母,数字等内容是,就会用到文本域,在大多数浏览器种,文本域的缺省宽度是20个字符:<form>姓名:<inputtype="text"name="username"><br></form>(2)密码字段密码字段通过标签<inputtype="password">来定义,密码字段字符不会明文显示,而是以星号或圆点替代:<form>...
python3之Django模型(一)
1、模型概述模型是关于您的数据的唯一,明确的信息来源,它包含您正在存储的数据的重要字段和行为。通常,每个模型映射到单个数据库表。每个模型都是一个子类的python类django.db.models.Model模型的每个属性表示一个数据字段综上所述,Django为您提供了一个自动生成的数据库访问API。简单实例:在app下的models中创建person类:classperson(models.Model):first_name=models.CharField(max_length=30)last_name=models.CharField(max_length=30)first_name和last_name是模型的命名字段,每个字段都被指定为一个类属性,并且每个属性映射到一个数据表的列上,上面的person模型会创建一个如下的SQL数据库表语句:CREATETABLEmyapp_person("id"serialNOTNULLPRIMARYKEY,"first_name"varchar(30)NOTNULL,"last_name"varchar(30)NOTNULL);其中表的名称以...
爬虫入门【8】Python连接MongoDB的用法简介
MongoDB是一种跨平台,面向文档的NoSQL数据库,提供高性能,高可用性并且易于扩展。包含数据库,集合,文档等几个重要概念。我们在这里不介绍MongoDB的特点和用法了,感兴趣的可以查一下官方文档。在此重点介绍如何使用python连接MongoDB,并通过PyMongo操作MongoDB数据库。这里默认MongoDB已经安装好啦,安装教程可以参考:http://www.yiibai.com/mongodb/mongodb_environment.html感谢易百教程~~~~~目前最新版本为3.5.1。请注意不要单独安装bson包了,否则会与PyMongo不兼容。使用PyMongo时,第一步是运行mongod实例创建一个MongoClient,代码如下:当然,在使用代码测试之前,请务必保证MongoDB服务已经打开,否则连接不上的~~~~frompymongoimportMongoClientclient=MongoClient()#这是设置连接默认主机和端口,也可以明确指定主机和端口frompymongoimportMongoClient#client=MongoClient()c...
菜鸟学习编程语言的重要步骤
每种编程语言必然有其优点和缺点,这也决定了它有适合的应用场景和不适合的应用场景。现代软件行业,想一门编程语言包打天下是不现实的。这中现状也造成了一种现象,一个程序员往往要掌握多种编程语言。 学习任何一门编程语言,都会面临的第一个问题都是:如何学习 XX 语言? 我不想说什么多看、多学、多写、多练之类的废话。世上事有难易乎?无他,唯手熟尔。谁不知道熟能生巧的道理? 我觉得有必要谈谈的是:如何由浅入深的学习一门编程语言?学习所有编程语言有没有一个相对统一的学习方法? 曾几何时,当我还是一名小菜鸟时,总是叹服那些大神掌握多门编程语言。后来,在多年编程工作和学习中,我陆陆续续也接触过不少编程语言:C、C++、Java、C#、Javascript、shell 等等。每次学习一门新的编程语言,掌握程度或深或浅,但是学习的曲线却大抵相似。 下面,我按照个人的学习经验总结一下,学习编程语言的基本步骤。 学习编程语言的步骤 基本语法 首先当然是了解语言的最基本语法。 控制台输出,如 C 的 printf,Java ...