Django框架(五)---- app组件

Django框架(五)


 App组件:

我们使用:python manage.py startapp app-name 命令创建app,可得到如下结构的目录: 

1 appname
2  |___migrations
3  |     |_ __init__.py
4  |_ __init__.py
5  |_ admin.py
6  |_ apps.py
7  |_ models.py
8  |_ tests.py
9  |_ views.py

一、models.py:模型层

  在models.py文件中,需要去创建你的模型类,继承自models.Model类,包含了Django和数据库之间数据的基本字段和行为,每个模型类映射到数据库形成一张数据表,例如:

1 from django.db import models
2 
3 class Users(models.Model):
4     name = models.CharField(max_length=32)
5     age = models.IntegerField(default=20)
6     phone = models.CharField(max_length=16)

  在上述例子中,定义了一个Users类,类中包含三个对象,这三个对象名映射到数据库表,为表的字段名;后面定义了这三个对象的数据类型Field以及限定。

   Field字段类型通常常用的有:1、CharField:字符串,必须有参数 max_length规定长度;

               2、IntegerField:整数;

               3、FileField:文件上传字段;

               还有很多,具体可查阅Django-1.10中文文档/filed

  在建立了空数据库,并且在settings.py中设置好DATABASES,然后创建好需要的model类,即可使用命令:

1 python manage.py makemigrations
2 python manage.py migrate

  来让Django生成数据库表,得到:

    (图片为MySQL数据库表)

  但是:一般是首先创建数据库表,需要的字段,属性,主键等都设置完全后,再创建model类,因为Django自动生成的数据表,其中属性有些不尽人意。


二、urls.py:子路由

  将project/urls.py文件复制一份到app目录下;

  在其中书写规则,分析从总路由project/urls.py分配过来的关于该app的请求,然后推送给相应的视图层函数,进行处理并返回一个响应;

  例子:

1 from django.conf.urls import url
2 
3 from . import views
4 
5 urlpatterns = [
6     url(r'^$', views.index, name='index'),
7 ]

  1、首先导入视图文件:views.py

  2、因为是总路由分配过来的请求,则这些请求的URL,前面必定是:IP:PORT/appname 结构

  3、url()函数第一个参数:正则表达式,根据请求URL的appname后面的结构进行匹配;

         第二个参数:代表匹配成功后,触发views模块中的index函数;

           第三个参数:命名,涉及到后面的模板层,省事;

  4、有多少视图层操作,就写多少个url函数;


三、views.py:视图层

  views.py文件,接收Web请求并且返回Web响应,这个响应可以是HTML内容,重定向或404,甚至是其他东西;

  直接上例子:

1 from django.http import HttpResponse
2  
3 def index(request):4 
4 return HttpResponse("Hello World! ")

   1、导入django.http模块的HttpResponse函数;

   2、编写函数index,返回一个"Hello World! "的响应;

   3、这是最简单的一个视图,按照之前设置好的app/urls.py子路由文件,运行Django服务,浏览器 IP:PORT/appname 即可显示"Hello World! "

 

未完,待添加

  

 

猜你喜欢

转载自www.cnblogs.com/lambs/p/9175492.html
今日推荐