Django入门

在这里介绍一下能让刚开始学Django的同学简单入门操作 以及软件的安装

Django简介:


	Django,发音为[`dʒæŋɡəʊ],是用python语言写的开源web开发框架,
	并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,
	而开发出来了这个框架,于2005年7月在BSD许可证下发布。
	这个名称来源于比利时的爵士音乐家DjangoReinhardt,他是一个吉普赛人,
	主要以演奏吉它为主,还演奏过小提琴等。
	由于Django在近年来的迅速发展,应用越来越广泛,
	被著名IT开发杂志SDTimes评选为2013SDTimes100,
	位列"API、库和框架"分类第6位,被认为是该领域的佼佼者。

    Django的主要目的是简便、快速的开发数据库驱动的网站。
    它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,
    Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。
    这使得Django具有很强的可扩展性。它还强调快速开发原则。

Django入门前的必备工作:
		ubuntu    mysql   redis   python3.0   pycharm    谷歌浏览器 
		这些软件要下载安装好,后期我们会经常用到

在python环境中下载django:

	pip install django==1.11.11,这里推荐安装这个版本的,比较好用
		
	cd .virtualenvs/zhuang111/bin查看一下有没有安装好,这里的zhuang111是python环境。
	这时候可以创建一个新项目了,可以选择pycharm的工作路径,创建一个文件,
	在里面创建项目,也可以随便不进去就创建项目。
	
	创建django项目
		django-admin startproject name
		查看测试:
		tree可以查看创建的项目格式,里面有个manage.py文件
		可以用python manage.py runserver启动

	django中的目录文件:
		__init__.py:他是项目的初始化文件  有了这个文件  标志当前文件夹是一个包,可以被引用
		settings.py:所有的django的配置信息都在这里面
			包括数据库的配置   静态文件的配置    
			还有django依赖的第三方扩展包
		urls.py:他就是我刚刚提到的路由分发器
		wsgi.py:是一个服务器的启动文件,后期项目上线需要用到他
		manage.py:他是整个Django项目的启动文件
项目创建好之后,我们需要创建django_app:
		python manage.py startapp name
		
运行django:
		进入项目目录后  执行python manage.py runserver

settings文件的配置:
	语言改成:zh-hans 如:LANGUAGE_CODE = 'zh-hans'
	时区改成:Asia/Shanghai 如:TIME_ZONE = 'UTC'
	创建完App以后  要记得在settings文件中进行注册,把App加进去
	INSTALLED_APPS = [
			'django.contrib.admin',
			'django.contrib.auth',
			'django.contrib.contenttypes',
			'django.contrib.sessions',
			'django.contrib.messages',
			'django.contrib.staticfiles',
			'App',
		]

	templates模板也要配置进去:
		os.path.join(BASE_DIR,'template'),如果直接在pycharm中直接创建的话就不需要设置这个了。

django连接数据库

链接mysql步骤:
		第一步:pip install pymysql
		第二步:在项目的__init__文件中添加代码
				import pymysql
				pymysql.install_as_MySQLdb()
		第三步:找到mysql的连结源,然后填信息
				如果没有mysql驱动   需要下载MySQL驱动
		第四步:进入项目然后执行迁移文件
			python manage.py makemigrations
			python manage.py migrate
连接mysql必须在settings设置:
DATABASES = {
				'default': {
					'ENGINE': 'django.db.backends.mysql',
					'NAME': "zhuang1",    #这个是你创建的数据库
					'USER': "root",
					'PASSWORD': "123456",
					'HOST': "localhost",
					'PORT': "3306",

				}
			}

这里简单创建一个学生表

创建一个Student表,然后保存数据
	第一步:
		在models类中写:
			class Student(models.Model):
				s_name = models.CharField(max_length=32)
				s_age = models.IntegerField(default=18)
	第二步:
		执行迁移文件
		python manage.py makemigrations
		python manage.py migrate
	第三步:
		在urls类中写:
		url(r'^addstu/', views.addStu),
	  在views类中写:
		创建添加学生的函数:
			def addStu(request):
				stu = Student()
				stu.s_name = "zhuang%d" % random.randrange(100)  #引用random随机生成一个学生
				stu.s_age = 19
				stu.save()
				return HttpResponse("数据保存成功")
	第四步:
		执行访问
		 python manage.py runserver
j简单的学生表就建立好了,可以进去谷歌浏览器查看内容

规划咱们的路由:

为什么规划路由:
		随着应用的增多,视图函数之间难免出现冲突,为了避免这种冲突
		我们将路由规划为包含的样式

		第一步:
			在各自的应用下方创建urls.py文件
			如果不会写,copy工程目录下的文件
		第二步:
			将工程目录下的urls.py修改为如下样式
			url(r'App/',include('App.urls')),
			url(r'Two/',include('Two.urls')),
		第三步:
			然后再在各自应用的urls.py中指定各自的路由,如下样式
			url(r'^hello/', views.hello),

Django的一下基本命令用法

Django有两种过滤器用于筛选记录
	filter 	:返回符合筛选条件的数据集
	exclude	:返回不符合筛选条件的数据集
查询集和过滤器:
返回查询集的方法
	all()		返回所有数据
	filter()		返回符合条件的数据
	exclude()	过滤掉符合条件的数据
	order_by()	排序
	values()	一条数据就是一个字典,返回一个列表
返回单个数据的:
	get():返回一个满足条件的对象
      如果没有找到符合条件的对象,会引发 模型类.DoesNotExist异常
      如果找到多个,会引发  模型类.MultiObjectsReturned 异常
	first():返回查询集中的第一个对象
	last():返回查询集中的最后一个对象
	count():返回当前查询集中的对象个数
	exists():判断查询集中是否有数据,如果有数据返回True没有反之

比较运算符:
	contains:是否包含,大小写敏感,filter(sname__contains='赵')
	startswith,endswith:以values开头或结尾,大小写敏感
	以上四个在运算符前加上 i(ignore)就不区分大小写了 i就是iexact的意思
	isnull,isnotnull:是否为空,filter(sname__isnull=False)
	in:是否包含在范围内,filter(pk__in=[2,4,6,8])
	gt,gte,lt,lte:大于,大于等于,小于小于等于filter(sage__gt=30)

聚合函数:
	使用aggregate()函数返回聚合函数的值
	Avg:平均值
	Count:数量
	Max:最大
	Min:最小
	Sum:求和
	例如:Student.objects.aggregate(Max('sage'))

F对象:
	可以使用模型的A属性与B属性进行比较
	grades = Grade.objects.filter(gage__gt=F('gboynum') )
	F对象支持算数运算
	grades = Grade.objects.filter(gage__gt=F('gboynum') +10 )
Q对象:
	过滤器的方法中的关键参数,常用于组合条件
	年龄小于25
	Student.objects.filter(Q(sage__lt=25))
	Q对象语法支持  | (or), & (and), ~(取反)
	年龄大于等于的
	Student.objects.filter(~Q(sage__lt=25))

状态码:
	2xx:访问成功
	3xx:重定向
	4xx:客户端错误
	5xx:服务端错误

request请求的方式:
	get:查询
	post:新建操作或者更新
	put:更新
	delete:删除

模型类的继承

模型类的继承
		模型类的继承:当子模型类  继承  父模型类的时候
		一定要在父模型类的元信息中设置一个抽象属性  代码如下
		class Fu(models.Model):
			name = models.CharField(max_length=32)
			age = models.IntegerField(default=0)
			high = models.IntegerField(default=180)
			
			注释:一定要加如下面的这个函数
			class Meta:
				abstract = True

		class Zi(Fu):
			weight = models.IntegerField(default=100)
		class Nv(Fu):
			hair = models.IntegerField(default=100)
这样操作才能保证我们在继承完毕以后,迁移的时候,
不会在数据库中生成多余的父类表。


url的带参传递写法:

url的带参传递写法:
	url(r'^hello/(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)', views.hello),
    url(r'^hello/(\d+)/(\d+)/(\d+)/', views.hello),

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值