Django笔记

1.新建项目

django-admin startproject demo

2.新建APP

cd demo
django-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 makemigrations
python 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 url
from django.contrib import admin
from learn import views as learn_views  # new

urlpatterns = [
    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’ )

  1. AutoField (primary_key=True)
  2. BooleanField
  3. CharField / InAddressField / FilePathField / EmailField / URLField (max_length=888)
  4. DateTimeField / TimeField / DateField
  5. FloatField
  6. IntegerField / BigIntegerField / SmallIntegerField
  7. 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 %}

  • {{ user.username }}
  • {% endfor %}

    #### if/else

    {% if is_logged_in %}
    Thanks for logging in!
    {% else %}
    Please log in.
    {% endif %}

    #### include视图

    {% include “user/index.html” %}
    “`

    12.部署Django

    1.关闭debug模式
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值