1、确保已经安装Python 3.6以上的版本
2、安装虚拟环境-pipenv
3.安装pycharm专业版或者社区版
4、下载PHPstudy,安装MySQL5.7版本
5、安装Django2.2版本
Django框架与传统框架对比:
\ | 传统框架(MVC) | Django框架(MVT) |
---|---|---|
模型 | model | model |
控制器 | controller | view |
视图 | view | template |
·pycharm
·django-admin startproject[项目名称]
·python manage.py runserver
·在pycharm中设置
·python manage.py startapp [app名字]
在settings.py 中关闭
设置
debug=False
关闭之后需要设置的
ALLOWED_HOSTS=[‘127.0.0.1’]
在urls文件中做映射:
运行项目,访问http://127.0.0.1:8000/book/即可看的结果
2、以关键字参数传参
URL中包含另外一个urls模块:
在项目中,不可能只有一个app,如果把所有的app的views中的视图都放在urls.py中进行映射,肯定会让代码显得非常乱,因此django给我们提供了一个方法,可以在app内部包含自己的url匹配规则,而在项目的urls.py中再统一包含这个app的urls。使用这个技术需要借助include函数。
在urls.py文件中:
在urls.py文件中把所有的和book这个app相关的url都移动到app/urls.py中了,在project/urls.py中,通过include函数包含book.urls,以后在请求book相关的urls的时候都需要加一个book的前缀。
例:
在app内部新建一个urls文件
在project/urls中用include函数引用,就可以把app内部的url拼接到project的url里面
访问路径时必须在前面加上路径,才能访问到指定app的url下面
内置转换器,加int,str等参数进行类型匹配,只有符合条件的才能正常使用,否则报错
路由重定向:redirect
1.为什么需要URl命名
因为在项目开发的过程中URl地址可能经常变动,如果写死会经常去修改
2、如何给一个URL指定名称
path(’’,views.index,name=‘index’)
3、应用命名空间
在多个app之间可能产生多个URL映射同一个App,在做反转的时候,如果使用命名空间,就会发生混淆,为了避免这个问题,可以使用实例命名空间,实例命名空间使用,namespace=‘实例命名空间’
用 redirect(reverse(‘实例命名空间’)),这样在只需更改urls中的路由地址即可,不需要所有的url都要更改
redirect(reverse(‘应用命名空间:实例命名空间’))
用于区分各app之间的url路径
1、关键字传参
如果这个url中需要传递参数,那么可以通过kwargs来传递参数。
redirect(reverse(‘应用命名空间:实例命名空间’,kwargs={‘参数’:参数名}))
2、字符串拼接方式
redirect(reverse(‘应用命名空间:实例命名空间’)+’?参数名’)