django学习-路由和视图(上)

1.工程搭建

1-1.安装django :
pip install django==1.11.11

1-2.创建工程:
django-admin startproject 工程名称

与项目同名的目录,是工程目录。
settings.py 是项目的整体配置文件。
urls.py 是项目的URL配置文件。
wsgi.py 是项目与WSGI兼容的Web服务器入口。
manage.py 是项目管理文件,通过它管理项目。


1-3.创建子应用:
python manage.py startapp 子应用名称

admin.py 文件跟网站的后台管理站点配置相关。
apps.py 文件用于配置当前子应用的相关信息。
migrations 目录用于存放数据库迁移历史文件。
models.py 文件用户保存数据库模型类。
tests.py 文件用于开发测试用例,编写单元测试。
views.py 文件用于编写Web应用视图。

2.配置工作

2-1.注册安装子应用 : 工程和应用关联起来 settings中
将子应用的apps.py中的Config类添加到INSTALLED_APPS列表中。

2-2.视图和路由
工程urls写应用urls的注册 , 具体路由和视图对应由应用urls来写

2-3.settings文件
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
abspath(__file__) 当前文件的绝对路径
dirname 父目录,上一层目录  
BASE_DIR 正好是当前工程所在目录,即 djangoproject 的最上层目录


默认DEBUG=True,生产环境记得改成False
而且不是DEBUG,需要给ALLOWED_HOSTS = ['*'] 设置


语言和时差
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'


apps.py中加入
verbose_name = '用户管理' 相当于init和str ,具体说明是干什么用的,方便开发者来看

2-4.静态文件
STATICFILES_DIRS 存放查找静态文件的目录
STATIC_URL 访问静态文件的URL前缀
生产模式时,Django不再对外提供静态文件,需要是用collectstatic命令来收集静态文件并交由其他静态文件服务器来提供

3.路由urls

工程的全部路由信息也可以都定义在主路由文件中,子应用不再设置urls.py

url_map: 路由-视图函数 对应关系 在django中reverse反解析
路由命名:
主urls中,include包含的是路由列表,所以使用  namespace
子应用urls中, 使用 name
reverse反解析:(先命名再反解析)
url = reverse(namespace:name)

4.Request

4-1.路径中的参数 正则  ,  可以作为函数的参数取出来
url(r'^weather/([a-z]+)/(\d{4})/$', views.weather)

4-2.?后的参数  # /qs/?a=1&b=2&a=3           (类似:flask中 args方法)
request.GET  得到的是  QueryDict对象(是个字典型) ?后的参数是用对象来取
a = request.GET.get('a')    其实是get('key')
b = request.GET.get('b')
alist = request.GET.getlist('a')
print(a)  # 3       是QueryDict对象但不是真的字典,所以key可以重复,而且get获取的是最后的一个key
print(b)  # 2
print(alist)  # ['1', '3']      getlist方法获取的是所有的key

4-3.请求体中,表单     (类似:flask中 form方法)
request.POST  得到  QueryDict对象
a = request.POST.get('a')       
b = request.POST.get('b')
alist = request.POST.getlist('a')

4-4.请求体中,json    (类似:flask中 data方法)
request.body   得到  bytes类型


4-5.请求头            (类似:flask中 header方法)
request.MATE['字典的key,字母全大写并且写到下划线']

4-6.其他
request.method  请求方法
request.user  请求的用户对象
request.path  请求的完整路径
request.FILES  上传的文件

5.response     由HttpResponse构建
响应体和数据类型,状态码:
response = HttpResponse(content=响应体, content_type=响应体数据类型, status=状态码)
响应头:
response['key'] = 这样就把响应头写进去了
json:
JsonResponse({})  类似:flask中 jsonify
重定向:
redirevt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值