Django创建app

一个新建立的项目结构大概如下

mysite/

manage.py

mysite/

init .py

settings.py

urls.py

asgi.py

wsgi.py

各文件和目录解释:

  • 外层的mysite/目录与Django无关,只是项目容器,可以任意重命名.
  • manage.py:一个命令行工具,管理Django的交互脚本。
  • 内层的mysite/目录是真正的项目文件包裹目录,它的名字是引用内部文件的Python包名,例如:mysite.urls。
  • mysite/__init__.py:一个定义包的空文件。
  • mysite/settings.py:项目的配置文件。
  • mysite/urls.py:路由文件,所有的任务都是从这里开始分配,相当于Django驱动站点的目录。
  • mysite/wsgi.py:一个基于WSGI的web服务器进入点,提供底层的网络通信功能,通常不用关心。
  • mysite/asgi.py:一个基于ASGI的web服务器进入点,提供异步的网络通信功能,通常不用关心。

启动开发服务器

回到mysite项目的根目录,也就是manage.py文件的同级目录下,输入下面的命令:

python manage.py runserver

Django提供了一个用于开发的web服务器,使你无需配置一个类似Ngnix的生产服务器,就能让站点运行起来。这是一个由Python编写的轻量级服务器,简易并且不安全,因此不要将它用于生产环境。

Django的开发服务器(以后简称服务器)默认运行在内部的8000端口,如果你想指定端口,请在命令中显示给出:

python manage.py runserver 8080

如果想修改服务器的ip地址,请按下面的方式运行命令,比如:

python manage.py runserver 0:8000

0 是 0.0.0.0 的简写,Django将运行在0.0.0.0:8000上,整个局域网内都将可以访问站点,而不只是是本机(这其中可能还需要做一些配置和网络测试)。

注意: Django的开发服务器具有自动重载功能,当你的Python代码有修改,服务器会在一个周期后自动更新。但是,有一些动作,比如增加文件,不会触发服务器重载,这时就需要你自己手动重启。所以建议,在任何修改代码的操作后,手动重启开发服务器,确保修改被应用。

PS: 重启服务器的操作在Pycharm里只需要简单地点击重启按钮即可。

创建应用

在 Django 中,每一个应用(app)都是一个 Python 包,并且遵循着相同的约定。Django 自带一个工具,可以帮你生成应用的基础目录结构。

app应用与project项目的区别:

  • 一个app实现某个具体功能,比如博客、公共档案数据库或者简单的投票系统;
  • 一个project是配置文件和多个app的集合,这些app组合成整个站点;
  • 一个project可以包含多个app
  • 一个app可以属于多个project

app的存放位置可以是任何地点,但是通常都将它们放在与manage.py脚本同级的目录下,这样方便导入文件。

进入mysite项目根目录,确保与manage.py文件处于同一级,输入下述命令:

python manage.py startapp polls

相关推荐
Python私教6 小时前
Docker化部署Django:高效、可扩展的Web应用部署策略
前端·docker·django
YiSLWLL6 小时前
Django+Nginx+uwsgi网站Channels+redis+daphne多人在线聊天实现粘贴上传图片
javascript·python·nginx·django
高压锅_122010 小时前
Django websocket 进行实时通信(消费者)
websocket·django·sqlite
一只小菜鸡16 小时前
python+django自动化平台(一键执行sql) 前端vue-element展示
python·mysql·django·自动化
XMYX-016 小时前
在 Django 中创建和使用正整数、负数、小数等数值字段
数据库·django·sqlite
工业互联网专业16 小时前
Python毕业设计选题:基于django+vue的智能停车系统的设计与实现
python·django·vue·毕业设计·源码·课程设计
m0_748230211 天前
Python毕业设计选题:基于django+vue的4S店客户管理系统
python·django·课程设计
有趣的我2 天前
django小项目
django
往日情怀酿做酒 V17639296382 天前
Django基础之路由
后端·python·django
Mr数据杨2 天前
解决整合Django与Jinja2兼容性的问题
数据库·django·sqlite