1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| * 开启项目:django-admin startproject pro
* 开启子应用:cd pro python manage.py startapp pro_app
* 业务分化,方便团队合作 * APP:承担不同功能,
* urls.:配置一个视图函数路由,
* pro/urls.py
* models.:使用orm语法创建模型类
* 对于模型类的操作就是在操作表 * 在settings->INSTALLL_APPS->pro_app,记得注册APP在配置中 * python manage.py makemigrations 查找数据库变更,寻找差异,生成迁移文件 * python manage.py migrate 根据迁移文件生成SQL
* admin.:能展示,管理当前APP所使用的数据表
* admin.py:admin.site.register(models.Studetn) * verbose_name:设置字段的可读名称
* `__str__`(self) :设置当前一条数据的可读名称
* views.:主要编写视图代码
* 响应request * 返回response * HttpResponse() # 返回普通字符串 * render(request, 'index.html', locals()) # 渲染页面 并返回、 * redirect(to, permanent=False):重定向,搜索引擎,用户 * permanent:当该参数为False时,使用302,当该参数为True时,使用301 * 302:临时重定向 * 301:永久重定向 * a - > b * show -> sh
* template:render模板页面
* 配置模板页面保存路径 * `settings->TEMPLATES->DIRS->[os.path.join(BASE_DIR,'template')]` * 模板变量:{{ var }} * 模板标签:{% for %} * tempalte > jinja2
* `static:静态资源` * STATICFILES_DIRS = () * 确定当前django项目
### Views
* 视图层 * 编写具体的逻辑代码
#### request
* request.method # 判断当前用户访问方式 * request.method == 'GET' * request.method == 'POST' * request.POST:获取POST形式提交的数据 * 获取表单多值时候,不能使用get函数 * 我们需要使用getlist * 解析到的数据类型为:application/x-www-form-urlencoded,form-data * request.GET:获取GET形式提交的数据 * get形式提交的数据 * request.META:访问的头部信息 * REMOTE_ADDR:获取访问者的IP地址
* request.FILES
### 学生管理系统
* centos:runserver 0.0.0.0:8000 * `systemctl stop firewalld`
* 记录学生信息 * 存储、建表:姓名,年龄,爱好,IP地址、头像 * request.META.get('REMOTE_ADDR') * 逻辑功能 * 1:页面展示所有学生 * 2:提供表单页面,以供学生填写 * 视图函数处理表单接收到的数据 * 首先判断IP,是否已经出现在数据库中 * 如果出现过,不允许表单值存入数据库,重定向到展示页面 * 没有出现过,可以表单存入数据库,并且重定向到展示页面 * 列表页,详情页
|