Django笔记
来源:互联网 发布:php unpack 二进制 编辑:程序博客网 时间:2024/05/21 08:02
1.新建项目
django-admin startproject demo
2.新建APP
cd demodjango-admin startapp blog
3.运行于服务中
python3 manage.py runserver 127.0.0.1:8000
4.数据库同步
python manage.py syncdb注意:Django 1.7.1及以上的版本需要用以下命令python manage.py makemigrationspython manage.py migrate
5.创建超级管理员
python manage.py createsuperuser# 按照提示输入用户名和对应的密码就好了邮箱可以留空,用户名和密码必填# 修改 用户密码可以用:python manage.py changepassword username
6.定义视图函数相关的URL(网址)
Django 1.8.x及以上,Django 官方鼓励(或说要求)先引入,再使用:from django.conf.urls import urlfrom django.contrib import adminfrom learn import views as learn_views # newurlpatterns = [ url(r'^$', learn_views.index), # new url(r'^admin/', admin.site.urls), url(r'^hello/$',hello)
7.Models模型
class User(models.Model): id = models.AutoField(primary_key=True) username = models.CharField(max_length=20) password = models.CharField(max_length=20)#可不加,若不加则默认会为名字 appname_user,加了这个名字则是 user class Meta: db_table = 'user'
模型的类型
blank=True是否为空值
你可能想自定义一个标签。 你只需在模块中指定 verbose_name 。
举个例子,说明如何将 Author.email 的标签改为e-mail,中间有个横线
email = models.EmailField(blank=True, verbose_name=’e‐mail’ )
- AutoField (primary_key=True)
- BooleanField
- CharField / InAddressField / FilePathField / EmailField / URLField (max_length=888)
- DateTimeField / TimeField / DateField
- FloatField
- IntegerField / BigIntegerField / SmallIntegerField
- TextField
外键
“`
manytomany 多对多关系
onetoone 一对一关系
依从读者表,将读者的主键设置为关系表的外键
reader = models.ForeignKey(Reader, on_delete=models.CASCADE)
数据库生成reader_id
依从于新闻表,将新闻的主键设置为关系表的外键
news = models.ForeignKey(NewsModel, on_delete=models.CASCADE)
#### Unicode对象
unicode() 方法可以进行任何处理来返回对一个对象的字符串表示。
def unicode(self):
return u’%s %s’ % (self.username, self.password)
### 8.数据库的增删改查#### 添加
user=User(username=’name’,password=’ss’)
user.save()
#### 删除
p = Publisher.objects.get(id=1)
p.delete()
#### 修改
user.username=’liu’
user.save()
#### 获得单个对象
user=User.objects.get(id=1)
user.username
#### 查询过滤
userList = User.objects.filter(username=’liu’)
查询到的是一个序列对象
#### 排序
单个排序
userList = User.objects.all().order_by(“username”)
多个排序
userList = User.objects.all().order_by(“id”,”username”)
逆排序(在名字前面加一个减号)
userList = User.objects.all().order_by(“-username”)
限制查询的个数
userList = User.objects.all().order_by(“id”)[0]
userList = User.objects.all().order_by(“id”)[0:2]
不支持负索引,但可变通
userList = User.objects.all().order_by(“-id”)[0]
### 9.Django站点管理,(Admin)
python3 manage.py syncdb 。这一步将生成管理界面使用的额外数据库表
当你把 ‘django.contrib.auth’ 加进 INSTALLED_APPS 后,
第一次运行 syncdb 命令时, 系统会请你创建一个超级用户。
如果你不这么作,你需要运行 python manage.py createsuperuser
来另外创建一个admin的用户帐号,否则你将不能登入admin
#### 1.自定义管理员界面列表,list_display是用于列表显示,search_fields是用于过滤搜索日期过滤 List_filter或者date_hierarchy
from django.contrib import admin
from mysite.books.models import Publisher, Author, Book
class AuthorAdmin(admin.ModelAdmin):
list_display = (‘first_name’, ‘last_name’, ‘email’)
search_fields = (‘first_name’, ‘last_name’)
List_filter=(‘time’,)
admin.site.register(Publisher)
admin.site.register(Author, AuthorAdmin)
admin.site.register(Book)
#### 2.排序ordering = ('time',)逆序是在前面加上一个减号‘-’### 10.表单提交#### post提交Setting.xml里面需要注释掉如果你在settings里边没有注释掉'django.middleware.csrf.CsrfViewMiddleware',
username = request.POST[‘username’]
### 11.模板视图#### 循环
{% for user in users %}
#### if/else
{% if is_logged_in %}
Thanks for logging in!
{% else %}
Please log in.
{% endif %}
#### include视图
{% include “user/index.html” %}
“`
12.部署Django
1.关闭debug模式
- django-笔记
- Django 笔记
- django笔记
- django 笔记
- django笔记
- django笔记
- django笔记
- django笔记
- Django 笔记
- Django笔记
- Django笔记
- Django笔记
- django 笔记
- Django笔记
- Django笔记13(部署Django)
- 【Django】CentOS7安装Django笔记
- Django学习笔记-初识Django
- Django学习笔记
- Java中状态模式介绍
- Linux——文件系统中inode的工作
- Git版本控制工具和Github代码托管平台
- POJ
- require js(一)
- Django笔记
- 机器学习
- LAMP架构学习(2) PHP的配置与使用
- 控制手机震动demo【引】
- xlistview
- Linux下修改Mysql的用户(root)的密码
- EasyUI 之 DataGrid分页组件中文显示的两种方法(语言的切换)
- leetcode 136. Single Number | XOR的巧妙运用
- Java中策略模式介绍