项目目录结构
自动生成的目录
在项目创建好后,django会自动生成一些必要的目录和文件,正确情况下的目录结构应该如下图:
如果不是这样的结构可能的情况是:django版本不对或这不是django项目。
其中的一些文件和目录的功能如下:
- setting.py:项目全局配置文件
- urls.py:urls的配置入口
- wsgi.py:django启动需要的文件
- templates:放置静态文件如html的目录
- manage.py:启动django的只要文件
创建额外的目录
创建app
django只是一个web框架,其中的功能是通过app来实现的,所以我们需要创建应用目录存放我们的应用程序。
点击菜单栏“工具” –> “Run manage.py Task” 来创建app。这时,在下方会出现一个django的命令行,比如我们创建名为message的app就可以输入命令:
startapp message
创建完成后,在左侧的目录结构中可以看到名为message的app出现了,并且与我们的项目目录同级:
创建static目录
创建static目录存放静态文件:js、css、图片等。
创建log目录
创建log目录存放往网站的日志文件。
创建media目录
创建media目录存放用户上传的资源文件。
创建后的情况
app过多导致的问题及解决
当app随着项目的进行越来越多的时候,我们的项目目录下的app名称的文件夹也就越来越多,显得十分复杂。解决办法如下:
创建一个新的目录apps,将app(message拖入apps目录内),自动生成一个__init__.py
的文件,表明这是一个包可以导入。
这样就可以通过下面的代码导入message的views.py文件:
from apps.messages import views
运行时的一个警告
在运行的时候会看见下面的一个警告:
这个表示没有进行数据库models的初始化,可移植性下面的命令进行初始化:
python manage.py migrate
现在暂时不做,不会有影响,后面使用到数据库后再做不迟。
留言板页面配置
功能分析
一个留言板应当具有如下的功能:
- 明确的提示信息。
- 能够获取用户的名称、邮箱、联系方式、留言内容等信息。
- 有一个提交按钮向后台提交数据。
代码
message_form.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="/static/css/style.css">
<style>
.smart-green {
margin-left: auto;
margin-right: auto;
max-width: 500px;
background: #F8F8F8;
padding: 30px 30px 20px 30px;
font: 12px Arial, Helvetica, sans-serif;
color: #666;
border-radius: 5px;