Django项目搭建
1. 项目下载与依赖安装
- 
常用框架 除了使用轻量级框架如 Bottle 或 Flask 实现接口外,Django 也是常用的后端框架。 
- 
依赖安装示例 inipip install psycopg2==2.7.1 django==1.10.6(注意:不同项目版本要求可能不同,确保包名和版本与项目需求匹配) 
- 
源码安装 - 
下载地址: Django 官方下载页面 下载如 django-1.11.8.tar.gz后:
- 
Linux 或 Mac 下: arduinotar -xvf django-1.11.8.tar.gz cd django-1.11.8 sudo python setup.py install
- 
Windows 下: - 
使用解压软件解压源码包到一个目录(例如 D:\django-1.11.8)。
- 
打开命令行(在"开始"菜单中输入 cmd),切换到该目录: arduinoD: cd django-1.11.8 python setup.py install
 如果出现 "python 不是内部或外部命令" 的提示,则需检查 Python 是否正确安装以及 PATH 是否配置正确。 
- 
- 
Linux 系统自带源安装(不推荐) 
- 
Ubuntu: arduinosudo apt-get install python-django -y
- 
Fedora: yum install python-django注:自带源安装的版本通常较旧,建议使用 pip 安装最新版。 
- 
检查安装是否成功 
 进入 Python shell 后执行: goimport django print(django.VERSION) # 输出类似:(1, 11, 8, 'final', 0) print(django.get_version()) # 输出 '1.11.8'如果能正常显示版本号,则说明 Django 安装成功。 
- 
2. 导入项目与 SDK 配置
- 
Django 项目基本结构 
- 
导入项目 将项目导入 IDEA 或其它 IDE 后,在 "File --> Project Structure" 中选择正确的 SDK。 
3. Django 基本命令与项目创建
3.1 IDEA 中创建 Django 项目
新建项目步骤
- 在 IDEA 中依次选择:File -> New -> Project
- 在新建项目对话框中选择 Python 项目,配置 Project SDK(确保已安装 Python),并勾选 Django 选项。
- 在下方填写 Template folder 路径(例如:C:\Python27\django-master\django\template),点击 Next。
- 填写项目名称、项目位置、Module Name、Content Root 和 Module File Location。
- 完成后 IDEA 会自动生成 Django 项目的基本结构,并在项目根目录生成如 manage.py等文件。
配置 Django 项目环境
进入 File -> Project Structure -> Facets 中找到 Django 配置项,确保:
- 
Django project root:指向整个项目的根目录。 
- 
Settings :选择项目中的 settings.py文件。
- 
Manage script :指向 manage.py文件。
3.2 项目目录新建 Django 项目
- 
命令 django-admin.py startproject project_name注意:在 Windows 上如果出现问题,可以使用 django-admin 替代 django-admin.py - project_name 必须是合法的 Python 包名(不能包含特殊字符或以数字开头)。
 
3.3 新建应用(App)
- 
进入项目目录后执行 python manage.py startapp app_name同样,app_name 也应为合法的 Python 包名(如 blog、news、aboutus)。 
3.4 数据库表的创建与变更
- 
Django 1.7 及以上 python manage.py makemigrations python manage.py migrate
- 
Django 1.6 及以下 python manage.py syncdb注:对于已有 models 的修改,早期版本建议使用第三方工具 south 进行数据库迁移。 
3.5 启动开发服务器
- 
运行命令 python manage.py runserver如需指定端口: yamlpython manage.py runserver 8001或监听所有 IP(便于局域网调试): python manage.py runserver 0.0.0.0:8000
3.6 清空数据库
- 
命令 arduinopython manage.py flush此命令会询问确认后将所有数据清空,只保留空表。 
3.7 创建超级管理员
- 
命令 python manage.py createsuperuser按提示输入用户名、密码(邮箱可留空)。 
4. 数据导出与导入
- 
导出数据 python manage.py dumpdata appname > appname.json
- 
导入数据 python manage.py loaddata appname.json
5. Django 项目环境终端
- 
启动 Shell python manage.py shell如果安装了 bpython或ipython,会自动启用更友好的交互界面,便于测试 models 等代码。
- 
数据库命令行 python manage.py dbshellDjango 会自动根据 settings.py中的数据库配置进入相应的数据库命令行环境(例如 MySQL、PostgreSQL)。
6. URL 配置与视图(Views)创建
6.1 新建项目示例
- 
创建项目 django-admin startproject mysite目录结构示例: markdownmysite/ ├── manage.py └── mysite/ ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py
6.2 创建视图
- 
在项目根目录下新建 views.py示例代码: pythonfrom django.http import HttpResponse def hello(request): return HttpResponse("<html><body><h1>Hello world</h1></body></html>")
6.3 配置 URL
- 
修改 mysite/urls.py示例(Django 1.7 及以下): pythonfrom django.conf.urls import patterns, url from mysite.views import hello # 根据实际包名修改 urlpatterns = patterns('', url(r'^hello/$', hello), )Django 2.0 及以上的写法: javascriptfrom django.urls import path from mysite.views import hello urlpatterns = [ path('hello/', hello, name='hello'), ]
6.4 启动服务器
- 
命令 python manage.py runserver访问 arduinohttp://127.0.0.1:8000/hello/测试视图。 
7. 新建 App 与详细示例
7.1 新建 App
7.2 定义视图函数
- 
在 learn/views.pypython# coding:utf-8 from django.http import HttpResponse def index(request): return HttpResponse(u"欢迎光临")
7.3 配置 App URL
- 
在主 URL 配置中(例如 mysite/urls.py)phpfrom django.urls import path, include urlpatterns = [ path('', include('learn.urls')), # 在learn目录下建立urls.py path('admin/', admin.site.urls), ]
- 
在 learn/urls.py(需要新建)javascriptfrom django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]
7.4 示例:实现加法功能
- 
使用 GET 参数的方式 在 calc/views.py中:pythonfrom django.http import HttpResponse def add(request): a = request.GET.get('a', '0') b = request.GET.get('b', '0') c = int(a) + int(b) return HttpResponse(str(c))对应 URL 配置(在 zqxt_views/urls.py中):javascriptfrom django.urls import path from calc import views as calc_views urlpatterns = [ path('add/', calc_views.add, name='add'), ]访问 http://127.0.0.1:8000/add/?a=4&b=5得到结果。
- 
采用 URL 参数方式 在 calc/views.py中增加:cssdef add2(request, a, b): c = int(a) + int(b) return HttpResponse(str(c))对应 URL 配置: pythonfrom django.urls import re_path from calc import views as calc_views urlpatterns = [ re_path(r'^add/(\d+)/(\d+)/$', calc_views.add2, name='add2'), ]访问 http://127.0.0.1:8000/add/4/5/得到相同效果。
8. 模板使用
8.1 配置模板目录
- 
在项目目录下创建 templates文件夹然后在 settings.py 中添加:iniTEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ # 默认的context_processors... ], }, }, ]
8.2 视图中调用模板
- 
在视图函数中 pythonfrom django.shortcuts import render def index(request): return render(request, 'home.html')
- 
示例模板 home.htmlxml<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>首页</title> </head> <body> <h1>{{ string }}</h1> <ul> {% for item in TutorialList %} <li>{{ item }}</li> {% endfor %} </ul> </body> </html>在视图中传递数据: pythondef home(request): context = { 'string': u"我在自强学堂学习Django,用它来建网站", 'TutorialList': ["HTML", "CSS", "jQuery", "Python", "Django"] } return render(request, 'home.html', context)
9. Django 模型与数据库操作
9.1 定义模型
- 
在 people/models.py中pythonfrom django.db import models class Person(models.Model): name = models.CharField(max_length=30) age = models.IntegerField() def __str__(self): return self.name
9.2 创建数据表
- 
在项目目录下执行 python manage.py makemigrations python manage.py migrate
9.3 数据操作示例
- 
创建记录 ini# 方法1:直接创建并保存 p = Person(name="Alice", age=30) p.save() # 方法2:使用 create Person.objects.create(name="Bob", age=25) # 方法3:防止重复创建 Person.objects.get_or_create(name="Charlie", age=28)
- 
查询记录 ini# 查询所有 persons = Person.objects.all() # 根据条件过滤 persons = Person.objects.filter(name__icontains="a")
- 
更新记录 iniPerson.objects.filter(name="Alice").update(age=31)
- 
删除记录 iniPerson.objects.filter(name="Bob").delete()
10. 总结
以上内容提供了从项目创建、应用构建到数据库操作、模板使用以及 URL 和视图配置的详细步骤。
- 对于 Django 框架的使用,重点在于理解项目和 App 的结构、配置文件设置以及 Django 内置的管理命令。
- 开发过程中建议多利用 manage.py shell和dbshell来调试数据操作。
- URL 配置和视图函数的编写应注意包名和导入路径,避免常见的 ImportError。