manage.py:Django项目里面的工具,通过它可以调用django shell和数据库等
settings.py:包含了项目的默认配置,包括数据库信息,调试标志以及一些工作的变量
urls.py:负责把URL模式映射到应用程序
model.py:负责数据库处理
view.py:处理一些业务逻辑
admin.py:Django自带的一个后台数据管理系统
关于URL路由系统
from django.conf.urls import url,include
from django.contrib import admin
from app import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
# 静态路由
url(r'^login/',views.login), # 如 http://127.0.0.1:8080/login
# 为路由取别名,这样,在地址修改的时候,前端不需要修改地址
url(r'^register/',views.register,name='reg'),
# 动态路由,可以用来做分页
# 无名分组,views里面的函数名参数可任意
url(r'^article/(d{4})$',views.article), # 如 http://127.0.0.1:8080/article/2017
# 有名分组,view里面的函数名必须是year和month
url(r'^arcticle/(?P<year>d{4})/(?P<month>d{2})',views.arcticle),
# 路由分发
url(r'^app/',include('app.urls')),
]
视图函数views
在http请求中产生两个核心对象,所在位置是,django.http:
http请求:HttpRequest对象
http响应:HttpResponse对象
def register(request):
'''
request就是HttpRequest对象
HttpResponse常用的扩展对象
render:页面渲染,可将参数以字典的形式传递给页面 也可以通过locals()将参数传递过去,没有进行页面跳转,url没有改变
redirect:页面跳转,url发生改变
:param request:
:return:
'''
# 获取请求方法
if request.method == "GET":
'''
对注册来分析,当我们进入注册页面的时候,一般都是GET请求
'''
# 获取GET里面的信息
ret = request.GET
print("GET信息",ret) # 输出 GET信息 <QueryDict: {}> 是一个字典对象
return render(request,"register.html")
elif request.method == "POST":
'''
通过表单提交之后,变成了POST请求
'''
# 获取POST里面的信息
ret = request.POST
print("POST信息",ret)
'''
输出 POST信息 <QueryDict: {'csrfmiddlewaretoken': ['oeKNHGKKm9Ip6B4Y2bfZM16lD2ECoTylPzX7rKzEUO5baf5Dfw4uB2zz5zz61fL9'], 'username': ['Jason'], 'pwd': ['123'], 'gender': ['1']}>
也是一个字典对象,可以通过句点获取表单提交过来的数据
'''
return redirect("/login/")
def login(request):
return render(request,"login.html")
模板系统Template
组成:HTML代码+逻辑控制代码
逻辑控制代码的组成:
①变量,使用双大括号来引用变量:{{ var_name }}
# 视图函数
def index(request):
people={
"username":"Jason",
"age":18,
"gender":"男"
}
username="Jason"
return render(request,"index.html",{"username":username,"people":people})