博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 自动化之路 day 19 Django基础[二]
阅读量:6927 次
发布时间:2019-06-27

本文共 2622 字,大约阅读时间需要 8 分钟。

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'},
}

转载于:https://www.cnblogs.com/yangliheng/p/6542436.html

你可能感兴趣的文章
js计算两个日期相隔几小时几分钟?
查看>>
幻4游戏开发_2_板机
查看>>
maven 打包 时出现非法字符: /65279错误
查看>>
Atitit.aticmd v4 新特性q39 添加定时器释放功能
查看>>
Cobbler简介
查看>>
linux下切割catalina.out文件,按天生成文件
查看>>
jquery and jquery validation 常见问题解决
查看>>
Sencha Toucha之Ext.Ajax
查看>>
Atitit. null错误的设计 使用Optional来处理null
查看>>
GoF--命令设计模式
查看>>
在RedHa上安装MRTG监控网卡流量
查看>>
MySQL添加用户、删除用户与授权
查看>>
VTK5.10.1源代码编译步骤
查看>>
Redis技术分享
查看>>
TensorFlow:tf.train.Saver()模型保存与恢复
查看>>
UML图示
查看>>
QEMU KVM Libvirt手册(10): KVM的各种限制
查看>>
错误:“The requested resource () is not available.”的处置
查看>>
Lintcode: Hash Function && Summary: Modular Multiplication, Addition, Power && Summary: 长整形long...
查看>>
CentOS搭建Git服务器及权限管理
查看>>