原创博客链接:django快捷复习手册
建立项目
django startproject projectname
启动服务
python manage.py runserver 9999#自己指定端口
python manage.py #使用默认8000端口
新增应用
python manage.py startapp blog#blog为应用名称
添加应用名到settings.py中的INSTALLED_APPS 里
1 2 3 4 | INSTALLED_APPS = [ ... 'blog', ] |
初始化数据表
执行 python manage.py makemigrations app名(可选)
再执行 python manage.py migrate
查看Django会自动在app/migreations/目录下生成移植文件
执行python manage.py sqlmigrate appname 文件id 查看sql语句,比如 python manage.py sqlmigrate blog 0001
admin后台控制台生成
python manage.py createsuperuser
数据查询
1 2 3 4 5 6 7 | article = models.Article.objects.get(pk=1) return render(request, 'blog/index.html', {'article': article}) 编辑 admin.py: admin.site.register(models.Article) def __str__(self):(python 3.X) return self.title |
模板语言
1 2 3 4 5 | <body> <h1>{{article.title}}</h1> <h3>{{article.content}}</h3> </body> <a href="{% url 'blog:article_page' article.id%}">{{article.title}}</a> |
url适配
1 | url(r'^article/(?P<article_id>[0-9]+)$', views.article_page), |
debug调试
1 2 3 4 5 6 | {% for item in List %} {{ item }}, {% endfor %} {% for item in List %} {{ item }}{% if not forloop.last %},{% endif %} {% endfor %} |
在for循环中还有很多有用的东西,如下:
1 2 3 4 5 6 7 8 9 | 变量 描述 forloop.counter 索引从 1 开始算 forloop.counter0 索引从 0 开始算 forloop.revcounter 索引从最大长度到 1 forloop.revcounter0 索引从最大长度到 0 forloop.first 当遍历的元素为第一项时为真 forloop.last 当遍历的元素为最后一项时为真 forloop.parentloop 用在嵌套的 for 循环中, |
获取上一层 for 循环的 forloop
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <ul> {% for athlete in athlete_list %} <li>{{ athlete.name }}</li> {% empty %} <li>抱歉,列表为空</li> {% endfor %} </ul> {% if var >= 90 %} 成绩优秀,自强学堂你没少去吧!学得不错 {% elif var >= 80 %} 成绩良好 {% elif var >= 70 %} 成绩一般 {% elif var >= 60 %} 需要努力 {% else %} 不及格啊,大哥!多去自强学堂学习啊! {% endif %} |
查看 Django queryset 执行的 SQL
1 | print str(Author.objects.all().query) |
比如我们要获取作者的 name 和 qq
1 | authors = Author.objects.values_list('name', 'qq') |
比如我们要获取作者的 name 和 qq
1 2 | Author.objects.values('name', 'qq') Out[13]: <QuerySet [{'qq': u'336643078', 'name': u'WeizhongTu'}, {'qq': u'915792575', 'name': u'twz915'}, {'qq': u'353506297', 'name': u'wangdachui'}, {'qq': u'004466315', 'name': u'xiaoming'}]> |
参考文献
https://blog.csdn.net/sinat_29214327/article/details/85226171
https://code.ziqiangxuetang.com/django/django-send-email.html
https://www.jianshu.com/p/116057746c64