初探django

  • by

正文:

这两天在学习一个分布式的scrapy项目(教程:https://blog.csdn.net/seven_2016/article/details/72802961
项目地址:https://github.com/shisiying/tc_zufang)
有《1.redis实现分布式(上篇已分析),2.ip代理池(用的是开源项目,已经调试好,会再分析),3.django界面》
web界面,作者也是用django做的,自己也去了解了下,django和scrapy结构类似,命令类似
和以前学习的flask比较,数据是有models.py文件来处理,不像flask要编写自己orm(老实说,现在来看python写的orm还是要看着以前写的注释)
单单论结构和页面,还是比较简单和容易理解的
参考:

http://www.runoob.com/django/django-first-app.htm  搭建一个简易的django
https://blog.csdn.net/xm_csdn/article/details/74419683  对数据进行操作
https://www.cnblogs.com/zhejiangxiaomai/p/5401554.html   30分钟搭建
https://blog.csdn.net/asialee_bird/article/details/79585590   windows下django环境的搭建
http://www.cnblogs.com/yumo1627129/p/7718783.html    diango的传参机制,一篇非常不错的view解释,强推

一.简单创建个web页面

1.

djangoadmin.py startproject first_web

创建一个项目
2.
cd firest_web
python manege.py runserver 8001
启动服务,指定8001端口,默认是8000端口
3.
观察127.0.0.1:8001
4.
继续修改
增加view.py文件

from django.http import HttpResponse
def hello(request):
       return HttpResponse(Hello world ! )

5.
修改urls.py文件

from django.conf.urls import url
from . import view
urlpatterns = [ url(r^$, view.hello), ]

urlpatterns  参考:http://www.cnblogs.com/yumo1627129/p/7718783.html
6.
127.0.0.1:8001
出现hello world

二.页面分离

即mvc结构解释,基本网页结构都是这种,便于数据管理和修改重构
1.html文件,(模板和视图),直接给一个例子

<!DOCTYPE html>
<html>
<head>
<title>hello</title>
</head>
<body>
<ul>
{% for student in students %}
<li>
id:{{ student.id }},姓名:{{ student.name }},age: {{ student.age }}
</li>
{% endfor %}
</ul>
</body>
</html>

2.views文件,控制

def showStudents(request):
    list = [{id: 1, 'name': 'Jack'}, {id: 2, 'name': 'Rose'}]
    return render_to_response('student.html',{'students': list})

三.数据储存

和flask的orm一样,也是修饰器,更简化的是,直接是对象的函数操作
字段:

1、models.AutoField  自增列= int(11)
  如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。
2、models.CharField  字符串字段
  必须 max_length 参数
3.models.DateField  日期类型 date
  对于参数,auto_now =True则每次更新都会更新这个时间;auto_now_add 则只是第一次创建添加,之后的更新不再改变。
4.models.DateTimeField  日期类型 datetime
  同DateField的参数
5.models.EmailField  字符串类型(正则表达式邮箱)=varchar
  对字符串进行正则表达式
6.models.FloatField  浮点类型= double
7.models.IntegerField  整形
8.models.SmallIntegerField  数字
  数据库中的字段有:tinyint、smallint、int、bigint
9、models.TextField  字符串=longtext
10、models.TimeField  时间 HH:MM[:ss[.uuuuuu]]
11、models.URLField  字符串,地址正则表达式
12、models.BinaryField  二进制
13、models.ImageField图片
14、models.FilePathField文件

参数:

1、null=True
  数据库中字段是否可以为空
2、blank=True
  django的Admin中添加数据时是否可允许空值
3、primary_key =False
  主键,对AutoField设置主键后,就会代替原来的自增 id 列
4、auto_now 和 auto_now_add
  auto_now 自动创建---无论添加或修改,都是当前操作的时间
  auto_now_add 自动创建---永远是创建时的时间
5、choices
GENDER_CHOICE =(
(u'M', u'Male'),
(u'F', u'Female'),
)
gender = models.CharField(max_length=2,choices = GENDER_CHOICE)
6、max_length
7、default  默认值
8、verbose_name  Admin中字段的显示名称
9、name|db_column  数据库中的字段名称
10、unique=True  不允许重复
11、db_index =True  数据库索引
12、editable=True  在Admin里是否可编辑

2018.8.29

标签:

发表评论

电子邮件地址不会被公开。 必填项已用*标注