django基础复习
Django - 路由系统 url.py - 视图函数 views.py - 数据库操作 models.py - 模板引擎渲染 - HttpReponse(字符串) - render(request,'/path/a.html',{'name':'root'}) 一、示例:用户基本CURD 1.数据库设计 id hostname ip port status 2.功能的实现 预备: 创建project django-admin startproject mysite 创建app cd mysite python manage.py startapp app01 配置模板路径 settings.py TEMPLATE DIRS: [os.path.join(BASE_DIR,'templates'),] 配置静态文件 settings.py STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static'), ) 二、路由系统 urls.py a. /^servers$ -> servers b. url(r'^edit_user_new-(?P<nnid>\d+).html$', views.edit_user_new), c. url(r'^edit_user_new-(\d+).html$', views.edit_user_new,name='bbb'), {% url "bbb" 1 %} ==> edit_user_new-1.html d. url(r'^edit_user_new-(?P<nnid>\d+).html$', views.edit_user_new, name='nnn'), {% url "nnn" nnid=1 %} ==> edit_user_new-1.html e. 主urls.py url(r'^cmdb/', include('app01.urls')), url(r'^config/', include('app02.urls')), app01 urls.py ... app02 urls.py ... 三、视图函数 views.py 获取请求信息: request.POST {'username':'root'..} request.GET request.FILES request.method request.body = username=root;age=18;gender=male 响应结果: return HttpReponse(..) return render(request,'path/a.html',{}) return redirect('http://www.baidu.com') 四、Django数据库操作 1. 类 --> 数据库的表 字段 --> 列 对象 --> 一行数据 class UserInfo(models.Model): nid = models.AutoField(primary_key=True) username = models.CharField(max_length=32) pwd = models.CharField(max_length=64) age = models.IntegerField() 2. 根据app的models.py生成数据库表 python manage.py makemigrations python manage.py migrate PS: settings注册app名字 注意: MySQL - 手动创建库名 - settings.py 中配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'dbname', 'USER': 'root', 'PASSWORD': 'xxx', 'HOST': '', 'PORT': '', } } - Django默认链接MySQL: - MySqlDB - pymysql 在配置目录的init.py中: import pymysql pymysql.install_as_MySQLdb() 3. 数据库基本操作 a. 查 models.tb.objects.all() models.tb.objects.filter(nid=1) models.tb.objects.filter(nid=1).first() b. 增 models.tb.objects.create(...) obj = models.tb(...) obj.save() c. 删 models.tb.objects.all().delete() models.tb.objects.filter(nid=1).delete() d. 改 models.tb.objects.all().update(...) models.tb.objects.filter(nid=1).update(...) 五、模板引擎 特殊规则: - 1 {{k1}} - 2 {% if a == 123 %} {% else %} {% endif %} - 3 {% for item in LIST %} {{item}} {% endfor %} - 4 # 索引:字典.k1 列表.1 - 5.自定义模板方法 - filter: 在if条件中做条件时 - simple_tag: 在页面仅显示内容时 - 6. extends - 模板的继承 - 7. include - 导入公共组件 六、Cookie - 是用户浏览器上的一个键值对 - 设置超时时间 利用cookie可实现: - 登录验证 - 页面显示条数 - 拖动位置.. 两大忌讳: - 敏感信息 - 简单 七、Session - 放置在服务器端的键值对 session = { 'asdfasdfasd': {'username':'hailong'}, 'asdfasdfasdf': {username:'feinikesi'}, }