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 dbshell
Django 会自动根据
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.py
python# 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.html
xml<!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。