当前位置: 首页 > news >正文

使用Django创建项目及介绍

第一步:创建 Django 项目

运行以下命令创建一个名为 myproject 的 Django 项目:

django-admin startproject myproject

这会生成一个名为 myproject 的文件夹,结构如下:

myproject/    # 项目容器:仅仅是一个目录,名字可以随意修改,不影响 Django 运行。
    manage.py # 项目管理工具:用于执行各种 Django 命令
    myproject/ # 这是实际的 Python 包(包含 __init__.py 文件),Django 项目的核心配置都在这里。
        __init__.py # ​空文件:告诉 Python 这个目录是一个 Python 包。
        settings.py # 项目配置:所有全局配置都在此文件
        urls.py     # ​URL 路由配置:定义 URL 路径与视图(View)的映射关系。
        asgi.py     # 用于异步服务器部署(如 Daphne),支持 WebSocket。
        wsgi.py     # 用于部署到 WSGI 服务器(如 Gunicorn、uWSGI)。

第二步:项目文件详细说明

1. 外层 myproject/ 文件夹
  • 项目容器:仅仅是一个目录,名字可以随意修改,不影响 Django 运行。
2. manage.py
  • 项目管理工具:用于执行各种 Django 命令,例如:
    python manage.py runserver  # 启动开发服务器
    python manage.py startapp myapp  # 创建新应用
    python manage.py migrate  # 应用数据库迁移
3. 内层 myproject/ 文件夹

这是实际的 Python 包(包含 __init__.py 文件),Django 项目的核心配置都在这里。

4. settings.py
  • 项目配置:所有全局配置都在此文件,例如:
    • INSTALLED_APPS: 已安装的应用列表(如 Django 自带应用和你创建的应用)。
    • DATABASES: 数据库配置(默认使用 SQLite)。
    • TIME_ZONE: 设置时区(如 Asia/Shanghai)。
    • STATIC_URL: 静态文件(CSS/JS/图片)的 URL 路径。
    • SECRET_KEY: 项目的安全密钥(需保密!)。
5. urls.py
  • URL 路由配置:定义 URL 路径与视图(View)的映射关系。
    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('home/', views.home),  # 假设你有一个 home 视图
    ]
6. wsgi.py 和 asgi.py
  • 服务器部署接口
    • wsgi.py: 用于部署到 WSGI 服务器(如 Gunicorn、uWSGI)。
    • asgi.py: 用于异步服务器部署(如 Daphne),支持 WebSocket。
7. __init__.py
  • 空文件:告诉 Python 这个目录是一个 Python 包。

第三步:运行开发服务器

输入以下命令启动开发服务器:

python manage.py runserver

访问 http://127.0.0.1:8000 会看到 Django 的欢迎页面!


下一步:创建应用(App)

Django 项目由多个“应用”组成。例如,你可以创建一个名为 blog 的应用:

python manage.py startapp blog

应用内会生成 models.py(定义数据库模型)、views.py(处理业务逻辑)、admin.py(管理后台配置)等文件。


总结

  • 项目 vs 应用:一个项目包含多个应用(例如 blogusers 等),每个应用负责一个独立功能。
  • 核心文件
    • settings.py:全局配置。
    • urls.py:路由定义。
    • manage.py:命令行工具。

相关文章:

  • OBS虚拟背景深度解析:无需绿幕也能打造专业教学视频(附插件对比)
  • 小蓝的括号串(栈,dfs)
  • 电气、电子信息与通信工程的探索与应用
  • Python正则表达式(一)
  • 远程登录服务(ssh)
  • unordered_map
  • 直播预告 | TDgpt 智能体发布 时序数据库 TDengine 3.3.6 发布会即将开启
  • 如何设计系统扩展性以应对业务增长
  • 《引流获客》总结
  • 同济大学多层次具身导航策略!​FlexVLN:灵活适应多样化任务的视觉语言导航
  • ubuntu下切换GCC版本
  • django入门教程之cookie和session【六】
  • Spring AI Alibaba AudioModel使用
  • Linux的进程信号 -- 信号产生,信号保存,信号捕捉,硬件中断,内核态和用户态,可重入函数,volatile,SIGCHLD
  • 反序列化漏洞
  • STM32实现智能温控系统(暖手宝):PID 算法 + DS18B20+OLED 显示,[学习 PID 优质项目]
  • 卷积神经网络 - AlexNet各层详解
  • 蓝桥杯第十届 数列求值
  • c++进阶--哈希表的实现
  • element-plus中el-empty空盒子组件和Collapse 折叠面板组件的使用
  • 9e做网站/湖南省人民政府
  • 做微信号公众号用网站还是App/网络营销产品策略分析
  • 照明网站建设/微博搜索引擎优化
  • 罗庄区建设局网站/今日刚刚发生新闻事件
  • 导航网站的广告怎么做的/seo网络优化公司
  • 域名停靠app网站入口/企业查询软件