第一个Django项目
2016-03-08 20:53
537 查看
第一个Django项目
Django是一个开放源代码的Python Web应用框架,采用了MVC的软件设计模式。使用Python的包管理工具pip或着easy_install可以方便的安装Django。在操作系统终端执行命令:
pip install django或
easy_install django
Django项目结构
ProjectRootDir |-- ProjectDir | |-- __init__.py | |-- settings.py | |-- urls.py | |-- wsgi.py |-- AppDir | |-- __init__.py | |-- urls.py | |-- models.py | |-- views.py | |-- apps.py |-- manage.py |--templates
Django项目下可以包含多个Web App,每个App目录下都包含相应的.py文件
__init__.py: python包的标志
settings.py: 项目配置文件,保存了相应的配置变量
urls.py: 保存路由配置,将请求映射到相应的处理函数
wsgi.py: 兼容WSGI接口的Web服务器入口
manage.py: 对django-admin.py的封装,提供与项目的命令行交互
templates: 保存视图模板的目录
创建Django项目
如果你使用PyCharm Professional等IDE的话,它们都提供一键创建django项目的功能。django自带的管理工具django-admin.py同样提供了创建项目的功能。
(1) 在django包安装目录下(如python/Lib/site-packages)/django/bin)下找到django-admin.py
如果你找不到django-admin.py也没关系,代码就下面几行。
只要django安装正确你可以自己建一个django-admin.py:
#!/usr/bin/env python from django.core import management if __name__ == "__main__": management.execute_from_command_line()
如果创建项目时出现编码问题(尤其是使用Python2的同学), 可以重写一下django-admin.py设置编码:
#!/usr/bin/env python from django.core import management import sys reload(sys) sys.setdefaultencoding('utf-8') if __name__ == "__main__": management.execute_from_command_line()
(2)建立Project
执行
python django-admin.py startproject <project-name>
(3)建立App
执行
python django-admin.py startapp <app-name>
然后将App目录移入Project。
也可以在Project目录下执行
python manage.py startapp <app-name>.
在project目录下创建FirstDjango应用,并在settings.py的INSTALLED_APPS中添加应用名'FirstDjango'。
编写视图函数
在FirstDjango下创建一个view.py,并编写代码:from django.http import HttpResponse def sayHello(request): return HttpResponse('<p>Hello World</p>')
视图函数接受HttpRequest封装对象,并以字符串的形式返回响应的html代码。
配置路由
urls.py文件中包含一个urlpatterns对象,在其中添加到sayHello的映射:from django.conf.urls import url from django.contrib import admin from FirstDjango.view import hello urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^hello/', hello) ]
url接受接受一个Python正则字符串和一个函数对象作为参数,当匹配到对应的url时Django将会把HttpRequest和与正则表达式匹配的字符串传入函数对象。
启动Web App
在ProjectDir下调用命令python manage.py runserver 127.0.0.1:8080
在127.0.0.1:8080启动调试服务器。
System check identified no issues (0 silenced). March 06, 2016 - 14:28:17 Django version 1.9.2, using settings 'FirstDjango.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
在新建APP后未做任何改动之前启动服务器可以看到
在完成上述工作后访问127.0.0.1:8000/hello/
项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入。只需重新发送请求(刷新),不需要重启服务器。
配置/管理 Web应用
django-admin.py是Django提供的命令行交互工具,每个工程拥有一个manage.py文件是对admin.py的封装,用于控制Web App。常用的命令有:
启动开发服务器:
python manage.py runserver <url>
创建Project:
django-admin.py startproject <project-name>
创建Web APP:
python manage.py startapp <app-name>
同步数据库:
python manage.py syncdb
注意在Django1.7及以后版本中
python manage.py syncdb已被移除。
构建数据库迁移:
python manage.py makemigrations
迁移数据库:
python manage.py migrate
详情参见Django doc
相关文章推荐
- D - Hexagons!
- Django入门(一) 启动Django
- Go语言中异常处理painc()和recover()的用法
- Google浏览器开发者工具 快捷键
- CodeForces 132C Logo Turtle (记忆化搜索)
- altium designer中如何添加logo
- category中添加属性的简单方式
- 在mingw项目中引入googletest
- LightOJ 1259 - Goldbach`s Conjecture (分解偶数为两个素数之和)
- Codeforces--630D--Hexagons(规律)
- Codeforces--630D--Hexagons(规律)
- MIGO相关的3个BADI增强点
- 从google的DrawerLayout来看看scroller的使用方法
- django用户认证
- 设置多图片表good_pic(中的商品id)为外键.参考goods商品表中的id,在删除商品的时候.一起删除多图片.
- Got fatal error 1236 from master when reading data from binary log: ‘Slave can not handle replicatio
- 【Google 重磅突破】相比LSTM,NLP 关键任务提升 20%
- codeforces 598D - Igor In the Museum
- django --fields.E304 错误解决方案
- django学习笔记(1)环境搭建