# 第一节:第一个Django项目
# 第一个Django项目
## 创建`Django`项目:
### 用命令行的方式:
1. 创建项目:打开终端,使用命令:`django-admin startproject [项目名称]`即可创建。比如:`django-admin startproject first_project`。
2. 创建应用(app):一个项目类似于是一个架子,但是真正起作用的还是`app`。在终端进入到项目所在的路径,然后执行`python manage.py startapp [app名称]`创建一个app。
### 用`pycharm`的方式:
用`pycharm`新建一个`Django`项目,新建项目的截图如下:
![](https://img.kancloud.cn/6b/a2/6ba25230544994c3add1621930f4e746_778x490.png)
使用`pycharm`创建完项目后,还是需要重新进入到命令行单独创建`app`的。
## 运行Django项目:
1. 通过命令行的方式:`python manage.py runserver`。这样可以在本地访问你的网站,默认端口号是`8000`,这样就可以在浏览器中通过`http://127.0.0.1:8000/`来访问你的网站啦。如果想要修改端口号,那么在运行的时候可以指定端口号,`python manage.py runserver 9000`这样就可以通过`9000`端口来访问啦。另外,这样运行的项目只能在本机上能访问,如果想要在其他电脑上也能访问本网站,那么需要指定`ip`地址为`0.0.0.0`。示例为:`python manage.py runserver 0.0.0.0:8000`。
2. 通过`pycharm`运行。直接点击右上角的绿色箭头按钮即可运行。
## 项目结构介绍:
1. `manage.py`:以后和项目交互基本上都是基于这个文件。一般都是在终端输入`python manage.py [子命令]`。可以输入`python manage.py help`看下能做什么事情。除非你知道你自己在做什么,一般情况下不应该编辑这个文件。
2. `settings.py`:本项目的设置项,以后所有和项目相关的配置都是放在这个里面。
3. `urls.py`:这个文件是用来配置URL路由的。比如访问`http://127.0.0.1/news/`是访问新闻列表页,这些东西就需要在这个文件中完成。
4. `wsgi.py`:项目与`WSGI`协议兼容的`web`服务器入口,部署的时候需要用到的,一般情况下也是不需要修改的。
## project和app的关系:
`app`是`django`项目的组成部分。一个`app`代表项目中的一个模块,所有`URL`请求的响应都是由`app`来处理。比如豆瓣,里面有图书,电影,音乐,同城等许许多多的模块,如果站在`django`的角度来看,图书,电影这些模块就是`app`,图书,电影这些`app`共同组成豆瓣这个项目。因此这里要有一个概念,`django`项目由许多`app`组成,一个`app`可以被用到其他项目,`django`也能拥有不同的`app`。
- Introduction
- 第一章:学前准备
- 第一节:虚拟环境
- 第二节:准备工作
- 第三节:Django介绍
- 第四节:URL组成部分
- 第二章:URL与视图
- 第一节:第一个Django项目
- 第二节:视图与URL分发器
- 第三章:模板
- 第一节:模板介绍
- 第二节:模板变量
- 第三节:常用标签
- 第四节:常用过滤器
- 第五节:自定义过滤器
- 第七节:模版结构优化
- 第八节:加载静态文件
- 第四章:数据库
- 第一节:MySQL相关软件
- 第二节:数据库操作
- 第三节:ORM模型
- 第四节:模型常用字段
- 第五节:外键和表关系
- 第六节:增删改查操作
- 第七节:查询操作
- 第八节:QuerySet API
- 第九节:ORM模型迁移
- 第十节:ORM作业
- 第十一节:ORM作业参考答案
- 第十二节:Pycharm连接数据库
- 第五章:视图高级
- 第一节:限制请求method
- 第二节:页面重定向
- 第三节:HttpRequest对象
- 第四节:HttpResponse对象
- 第五节:生成CSV文件
- 第六节:类视图
- 第七节:错误处理
- 第六章:表单
- 第一节:表单概述
- 第二节:用表单验证数据
- 第三节:ModelForm
- 第四节:文件上传
- 第七章:cookie和session
- 第八章:上下文处理器和中间件
- 第一节:上下文处理器
- 第二节:中间件
- 第九章:安全
- 第一节:CSRF攻击
- 第二节:XSS攻击
- 第三节:点击劫持攻击
- 第四节:SQL注入
- 第十章:信号
- 第一节:什么是信号
- 第十一章:验证和授权
- 第一节:概述
- 第二节:用户对象
- 第三节:权限和分组
- 第十二章:Admin系统
- 第十三章:Django的缓存
- 第十四章:memcached
- 第十五章:Redis