Python新手使用的Django架站的16堂课 — 第四章
http://docs.djangoproject.com/en/1.9/ref/models/fields/#model-field-types
python manage.py runserver 192.168.99.218:8080
http://192.168.99.218:8080/admin/login/?next=/admin/
工程名字是:mynewsite
app名字是:mysite
django-admin startproject mynewsite
cd mynewsite/
python manage.py startapp myapp
mkdir static
mkdir templates
django-admin startproject mshow
cd mshow/
python manage.py startapp mysite
cd mshow/
vi settings.py
cd …
mkdir templates
mkdir static
python manage.py makemigrations
python manage.py migrate
from django.db import models
# Create your models here.
class NewTable(models.Model):
bigint_f = models.BigIntegerField()
bool_f = models.BooleanField()
date_f = models.DateField(auto_now=True)
char_f = models.CharField(max_length=20, unique=True)
datetime_f = models.DateTimeField(auto_now_add=True)
decimal_f = models.DecimalField(max_digits=10, decimal_places=2)
float_f = models.FloatField(null=True)
int_f = models.IntegerField(default=2010)
text_f = models.TextField()
python manage.py sqlmigrate mysite 0001
python manage.py createsuperuser
from django.contrib import admin
from mysite.models import NewTable
# Register your models here.
admin.site.register(NewTable)
python manage.py runserver 192.168.99.218:8080
http://192.168.99.218:8080/admin/login/?next=/admin/
page134
python manage.py makemigrations
python manage.py migrate
page141
page143
page147
4.4 Template 简介
page151
看不清楚
4.4.3 没有看清楚
http://192.168.99.218:8080/list/
可以参考 <Python新手使用的Django架站的16堂课 >繁体版本 去看
新的
django-admin startproject mynewsite
cd mynewsite
django-admin startapp mysite
cd mynewsite/
vi settings.py
cd …
cd mysite/
vi models.py
cd …
python manage.py makemigrations
python manage.py migrate
python manage.py sqlmigrate mysite 0001
python manage.py runserver 192.168.99.218:8080
python manage.py shell
python manage.py shell
>>> from mysite.models import Product
>>> for p in allprod:
... print p.name,', ', p.price, ', ', p.sku
...
GrayBox , 100 , 1
HTC Magic , 100 , 0
SONY Xperia Z3 , 15000 , 1
Samsung DUOS , 800 , 2
Nokia Xpress 5800 , 500 , 1
Infocus M370 , 1500 , 2
>>>
page 142
>>> from mysite.models import Product
>>> for p in allprod:
... print p.name,', ', p.price, ', ', p.sku
...
GrayBox , 100 , 1
HTC Magic , 100 , 0
SONY Xperia Z3 , 15000 , 1
Samsung DUOS , 800 , 2
Nokia Xpress 5800 , 500 , 1
Infocus M370 , 1500 , 2
>>>
>>>
>>> allprod = Product.objects.all().order_by('price')
>>> print allprod
<QuerySet [<Product: GrayBox>, <Product: HTC Magic>, <Product: Nokia Xpress 5800>, <Product: Samsung DUOS>, <Product: Infocus M370>, <Product: SONY Xperia Z3>]>
>>> allprod = Product.objects.all().order_by('-price')
>>> print allprod
<QuerySet [<Product: SONY Xperia Z3>, <Product: Infocus M370>, <Product: Samsung DUOS>, <Product: Nokia Xpress 5800>, <Product: GrayBox>, <Product: HTC Magic>]>
>>>
>>>
>>> allprod = Product.objects.filter(sku=0)
>>> print allprod
<QuerySet [<Product: HTC Magic>]>
>>> allprod = Product.objects.filter(sku=1); print allprod
<QuerySet [<Product: GrayBox>, <Product: SONY Xperia Z3>, <Product: Nokia Xpress 5800>]>
>>> allprod = Product.objects.exclude(sku=1); print allprod
<QuerySet [<Product: HTC Magic>, <Product: Samsung DUOS>, <Product: Infocus M370>]>
>>>
>>>
>>>
>>> allprod = Product.objects.filter(price__lte=500);
>>> allprod = Product.objects.filter(price__lte=500);print allprod
<QuerySet [<Product: GrayBox>, <Product: HTC Magic>, <Product: Nokia Xpress 5800>]>
>>> allprod = Product.objects.filter(name__icontains='sony');print allprod
<QuerySet [<Product: SONY Xperia Z3>]>
>>> allprod = Product.objects.filter(name__icontains='ok');print allprod
<QuerySet [<Product: Nokia Xpress 5800>]>
>>> allprod = Product.objects.filter(sku__in=[1,2]);print allprod
<QuerySet [<Product: GrayBox>, <Product: SONY Xperia Z3>, <Product: Samsung DUOS>, <Product: Nokia Xpress 5800>, <Product: Infocus M370>]>
>>>
>>>
>>> Product.objects.filter(name__contains='SONY').exists()
True
>>>
page 142
(稍后补充)