Django7
app01自己创建的目录
-views.py
sqlhelper 封装sql语句
Django:
-路由
-视图
-模板
-ORM(类---表,对象--行:pymysql连接数据库)
Torando:
-路由
-视图
-模板
-自由:pymysql:sqlachemy
flask:
-路由
-视图
-模板(第三方组件)
-自由:pymysql;sqlachemy
今日内容:
1.路由系统
url--->函数
之前的127.0.0.1:8080/edit/?nid=fff
url(r"^edit/",views.edit),
def edit(request):
request.GET.get("nid")
return HttpResponse("...")
现在的
url(r"^edit/(\w+)/",views.edit),
def edit(request,a1):
a1就是自动接收后面的正则
url里面可以写正则表达式,其实Django的url就是正则表达式
url两种写法需要保持一致性。
位置参数 /edit/(\w+)/(\w+) 两个位置参数
关键字参数 /edit/(?P<a1>\w+)/(?P<a2>\w+) 就把a1的值赋值给形参是a1的。
b.url终止符 /或者$
c.伪静态,在url中伪造为html
url(r"^edit/(\w+).html$",views.edit)
d.路由分发
urls.py 引入include模块
url(r"^app01/",include("app01.urls")), 总路由先匹配app01,再去app01.urls找匹配
app01.urls.py
url(r"^index.html$",views.index),
e.根据名字反生成url, 给url取了个别名,在权限系统中会用到
url(r"^index/(\d+)/", views.index,name="n1"),
在view代码中 from django.urls import reverse
v = reverse("n1",args=(123,))
url(r"^index/(?P<a1>\d+)", views.index,name="n1"),
v = reverse("n1",kwargs={a1:123})
应用,就是不用写url了,
在html中,模板渲染(n1,映射名字,i是参数)
{% url "n1” i %}
2.视图函数 CBV,FBV
3.ORM操作
Http请求:
url==》(视图)模板+数据
ORM
操作表:
创建表
修改表
删除表
操作数据行:
增删改查
ORM利用pymysql第三方工具连接数据库
默认:
sqllite
默认:
mysql ==》 MysqlDB(修改django默认连接mysql方式)
步骤:
1.创建数据库
2.在seetings文件
DATABASES = {
'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'dbname', 'USER': 'root', 'PASSWORD': 'xxx', 'HOST': '', 'PORT': '', }} import pymysql
pymysql.install_as_MySQLdb()
4.在Model中,写类
5.注册app 在settings中
6.创建数据表
命令:python manage.py makemigrations
python manage.py migrate
#增加
#models.UserGroup.objects.create(title="销售")
#models.UserInfo.objects.create(user="root",password="123",age=18,ug_id=1)
#查找 group_list是个类似列表的Queryset对象 里面的元素是obj,每个obj是一行数据。
#那所有
#group_list = models.UserGroup.objects.all()
#多个条件之间默认是AND关系
#group_list = models.UserGroup.objects.filter(id=1,title="销售")
#大于小于
#group_list = models.UserGroup.objects.filter(id__gt=1)
#group_list = models.UserGroup.objects.filter(id__lt=1)
#删除,先查询
#models.UserGroup.objects.filter(id=2).delete()
#跟新,先查询
#models.UserGroup.objects.filter(id=2).update(title="公关部")
结构目录:
python manage.py satrtapp app01
project
-app01
-admin Django自带后台管理相关配置
-models 写类,会根据类创建数据库表
-tests 单元测试
-views 业务处理
作业:
学员管理(sql换成ORM)
新url方式:
1.班级增删改查
-edit-class/?nid=1
-edit-class/1.html
2.学生管理(FK连表,正向操作,反向操作)
PS:神奇的双下划线
posted on 2018-09-03 11:24 castiel_lee 阅读(83) 评论(0) 收藏 举报
浙公网安备 33010602011771号