python框架-Django-01-初识

之前用django写过项目,做了零零散散的笔记,一些细节的知识没有掌握。

这几天看了相关的教程。准备写一套Django知识汇总。

1.创建虚拟环境,pip安装django/mysql等
2.新建django项目,以eclipse为例
3.右键项目-django-create application9(manage.py startapp)
4.进入base的settings.py文件,在INSTALLED_APPS 列表中新增应用名
5.在新增应用的文件夹下编辑models.py文件(ORM-模型关系映射)新增表:
	ex:class BookInfo(models.Model):
	    btitle = models.CharField(max_length=20)
	    bpub_date = models.DateTimeField(db_column='pub_date')
	    bread = models.IntegerField(default=0)
	    bcommet = models.IntegerField(default=0)
	    isDelete = models.BooleanField(default=0)
	    def __str__(self):
	        return self.btitle
6.编辑数据库配置-在settings.py DATABASES字典中加入如下信息(以mysql为例):
	Ex:
		DATABASES = {
   		'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'demo',
        'USER':'root',
        'PASSWORD':'mysql',
        'HOST':'localhost',
        'PORT':'3306'
		    }
		}
7.右键项目-django-做迁移(makemigrations/migrate),完成后就实现了ORM,这里有可能会报错,是因为没有安装pymysql。
  自己在网上搜一下,python3 支持mysqlclient/connector等,具体名字上官网看。
8.可以做如下测试:
	ex:
	右键-django-python shell(ipython)
		from booktest.models import *
		b = BookInfo()
		b.btitle = '神雕侠侣'
		from datetime import datetime
		b.bupdate_time = datetime(year=1900,month=10,day=3)
		b.save()
		BookInfo.objects.all() #查看所有的记录
		b=BookInfo.objects.get(pk=1)
	至此,模型层已经构建完毕
9.编写views.py文件
	下面是views.py文件中的一个函数,他的作用是获取BookInfo的所有记录,并渲染给ddcloud.html。
	ex:
		def index(request):
		    booklist = BookInfo.objects.all()
		    content={'title':booklist}
		    return render(request, 'booktest/dccloud.html',content)
		def show(request,id):
		    book = BookInfo.objects.get(pk=id)
		    heroList = book.heroinfo_set.all()
		    content = {'list':heroList}
		    return render(request,'booktest/show.html',content)
	定义好之后,我们需要在urls.py配置。一个项目有很多应用,最好将自己的项目urls.py自己管理。
	在base的urls.py里面定义一条记录如下:
		url(r'^',include('booktest.urls'))
	将开头为空的访问,都指向booktest.urls文件。
	下面是应用里面的配置:
		from booktest.views import *
		urlpatterns = [
		    url(r'^$', index),
		    #正则中加上括号,在view中的函数就可以获取到。
		    url(r'^(\d+)',show)
		]
	注:值得注意的是(\d+) 括号这种方式,views函数能够接收到括号里面的参数,这个要记住。
10.建立templates
	在base 的templates 中加入这一行:
		'DIRS': [os.path.join(BASE_DIR,'templates')],
	告诉解释器,在这里找模板,一般就是在和应用同级的目录下建文件夹templates,然后在templates新建按应用名字
	命名的文件夹,在里面新增html。
	注:我这里IDE中找不到,不知道为什么。最后是在应用文件夹下建立的templates,能找到。估计是我自己的问题。
11.模板要获取传递给他的变量该如何获取?
	*{{}} 获取变量
	*{%for each in list%}...{%endfor%}循环
	

		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
					        


版权声明:本文为weixin_38942791原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。