Django采用了MVT的软件设计模式,即模型M,业务代码V和模板T。
本文介绍了Django运行的基本配置。
一、构建简单的MVT模型(三个文件夹,存放三种不同类型的文件):
1、目录:
models:存放数据库模型目录
template:存放模板文件目录
views:存放控制代码目录
二、Django基本说明:
1、安装:把python目录添加到系统的环境变量
pip install Django //使用python的pip命令安装Django
注意:
1)、安装的时候会提示报错,提示“timeout”,原因:下载地址速度太慢,换在国内地址
pip install Django -i https://pypi.tuna.tsinghua.edu.cn/simple
**永久更换下载源地址:
- linux下,新建/修改/.pip/pip.conf文件,添加下列内容
[global] timeout = 300 index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host = tsinghua.edu.cn
- Windows下,在文件夹浏览窗口输入%USERPROFILE%,新建\pip\pip.ini,添加下列内容:
[global] timeout = 300 index-url = https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host=tsinghua.edu.cn
2)、安装时提示“No module named pip”
原因有二,1、没有安装pip,如果使用python.exe安装,把python主目录下的Scripts添加到环境变量
2、Windows10下,右键使用管理员权限运行cmd
3)、pip下载下来的包直接存在python主目录下的Scripts下,而Scripts目录添加到了环境变量,所以安装后,可以使用django这个命令确认安装状态
2、使用manager.py新建项目:把Django目录添加到系统环境变量
新建项目时,Django自动创建项目的目录:
-项目名:
-manage.py:命令行管理工具,提供了与Django交互的接口。
常用命令,startapp name新建APP、makemagrations、migrate(Django的ORM)
-项目包名:以项目包命名的容器,主要实现配置和和管理功能。
-__init__.py:代表python一个包,python2.0必须有,才能代表是一个包,python3可以没有
-settings.py:项目的配置文件,配置静态文件地址和
-urls.py:配置网站目录,指定网址转向哪个文件。
-wsgi.py:一个 WSGI 兼容的 Web 服务器的接口,以便运行你的项目。它定义了TCP连接、HTTP原始请求和响应格式。
django-admin.exe startproject mysite //新建项目,名为mysite
3、启动项目:启动后就可以使用web浏览器访问该网站
cd mysite //进入mysite目录 python manage.py runserver 127.0.0.1:8000 //可以省略ip:port,默认本机ip和8000端口,也可指定ip:端口
4、创建一个APP:
APP:相当于整个网站的一个模块。比如:主站(index)\BBS\BLOG\Video\News等等,每一个都是一个独立的页面或功能。
python manage.py startapp blog //新建一个名字是blog的APP
新APP默认目录:
-migrations包:修改数据表结构
-__init__:代表APP是个包。。。
-apps.py:配置当前App
-models.py:ORM,写指定的类,通过命令可以创建数据库结构。
-tests.py:单元测试
-views.py:业务代码,存放后台处理的代码。
#配置urls.py指定网址访问的页面。APP要导入到views文件 import blog.views #在urlpatterns列表添加下面值 url(r'^blog',blog.views.login),
5、templates和static文件夹:新建项目后需要创建这两个文件夹。
templates:存放.html类型的模板文件,在urls.py中可以更改设置
static:存放静态文件,比如JS/jQuery/CSS类型的文件,在settings.py中设置才能正常被使用。
根据个人喜好设置,可以在每个APP下设置,也可在manage.py同级目录设定通用的static,
以上两个文件夹创建后的设置:
#增加settings.py文件templates的设置: TEMPLATES = ['DIRS': [os.path.join(BASE_DIR,'templates')]] //修改dirs的值,指定为主目录下的templates文件夹 #增加settings.py的static目录的设置 STATICFILES_DIRS=(os.path.join(BASE_DIR,'static'),)
6、几个错误:
1)、form请求错误,原因:form里的action带/,django里的urls地址路由没带/,只在django框架里的错误,
解决方法,两处/都删掉或都加/
2)、运行csrf错误,注释掉csrf行,以后会对csrf进行设置
3)、指定全局static目录后,无法加载CSS样式,提示Resource interpreted as Stylesheet but transferred with MIME type application/x-css
#html加载的CSS文件 <link rel='style' texttype='text/css' href='/static/css.css'/> #解决方法:在html首行加 {%load static%} #如果不想每次在模版中加载静态文件都使用load加载static标签,那么可以在settings.py中的TEMPLATES/OPTIONS添加'builtins':['django.templatetags.static'],这样以后在模版中就可以直接使用static标签,而不用手动的load了。
'django.contrib.auth.middleware.AuthenticationMiddleware',
三、总结一个完整的HTTP请求过程:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。