Django学习笔记-2
urls.py
为了避免所有的url映射都在根url文件下,所以需要将负责各个不同模块的app下的url进行合理的配置。
在根urls文件中添加 from django.conf.urls import include
,在具体的路径映射中,将映射函数改为 include('<app.urls>')
,然后在app下的urls文件中进行具体配置。
示例:
"根urls"
from django.urls import path
from django.conf.urls import include
from one_studio_demo import views
urlpatterns = [
path('index/', include('index.urls')),
path('login/', include('login.urls')),
path('home/', include('home.urls')),
]
"'login'app下的urls"
from django.urls import path
from login import views
urlpatterns = [
path('', views.login),
path('log/', views.log),
]
views.py
每一个视图函数都至少得有一个参数,通常被叫作request。
request参数类型是HttpRequest;它返回一个django.http.HttpRequest实例。
Django视图函数的三大返回方式:HttpResponse
,render
,redirect
HttpResponse:
视图函数返回字符串必须用HttpResponse()函数封装,使得其被HTTP协议识别。
视图函数返回字符串必须用HttpResponse()函数封装,使得其被HTTP协议识别
render:
render方法使用数据字典和请求元数据,渲染一个指定的HTML模板,多个参数中,第一个是request,第二个是模板文件名,第三个参数是后台传递到前端的参数,此参数支持字典类型参数,键为参数名,键值为参数值,模板使用{{}}来接受此参数。
为了让Django知道HTML模板文件在哪,需要在setting.py文件下的TEMPLATES中填写路径,一般默认是templates这个文件夹。
redirect:
重定向作用,传入一个URL参数,跳转至此。
models.py
新建app后,在该应用的目录下新建models.py,然后引入models模块,新建类的时候使其继承models.Model,这样该类就是一张数据表了。一个Model对应数据库里面的一张表,包含了一些基本字段和数据行为,类中新建的字段即为类的各种属性。
这样的形式为ORM(对象关系映射),实现了对象与数据库之间的映射隐藏了数据访问的细节,不需要直接编写SQL语句。
示例:
from django.db import models
class User(models.Model):
username = models.CharField(max_length=255)
password = models.CharField(max_length=255)
phone = models.CharField(max_length=255)
class Meta:
managed = False
db_table = 'user'