跟老齐学Django 1

https://www.djangoproject.com/

pip install Django==1.11.1

import django

print(django.get_version())
创建一个Django项目:django-admin startproject mysite

python3 manage.py runserver

创建应用:python3 manage.py startapp blog

manage.py是对django-admin的简单封装

./mysite/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]

./blog/models.py

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User

# Create your models here.
class BlogArticles(models.Model):
	title = models.CharField(max_length=300)
	author = models.ForeignKey(User, related_name="blog_posts", on_delete=models.DO_NOTHING)
	body = models.TextField()
	publish = models.DateTimeField(default=timezone.now)

	class Meta:
		ordering = ("-publish",)

	def __str__(self):
		return self.title

创建数据库表的文件:python3 manage.py makemigrations

python3 manage.py sqlmigrate blog 0001

真正创建数据库:python3 manage.py migrate

创建超级管理员:python3 manage.py createsuperuser

python3 manage.py runserver

http://127.0.0.1:8000/admin

发布文章:./blog/admin.py

from django.contrib import admin
from .models import BlogArticles
# Register your models here.
admin.site.register(BlogArticles) #将类加入当前环境

http://127.0.0.1:8000/admin/blog/blogarticles/ 添加文章

pip3 install pytz 用于django.utils.timezone

./blog/admin.py

from django.contrib import admin
from .models import BlogArticles
# Register your models here.
class BlogArticlesAdmin(admin.ModelAdmin):
	list_display = ("title", "author", "publish")
	list_filter = ("publish", "author")
	search_fields = ("titles", "body")
	raw_id_fields = ("author",)
	date_hierarchy = "publish"
	ordering = ['publish', 'author']
admin.site.register(BlogArticles, BlogArticlesAdmin)

显示博客信息

$ python3 manage.py shell
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) 
Type 'copyright', 'credits' or 'license' for more information
IPython 6.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from django.contrib.auth.models import User

In [2]: from blog.models import BlogArticles

In [3]: user = User.objects.get(username="admin")

In [9]: blogs = BlogArticles.objects.all()

In [10]: blogs
Out[10]: <QuerySet [<BlogArticles: 飞机的速度比火车的速度的  10 倍还多   LENGTHKM1>, <BlogArticles: 汉语框架语义网(cfn)构建现状>, <BlogArticles: You Raise Me Up>]>

In [11]: for blog in blogs:
    ...:     print(blog.title)
    ...:     
飞机的速度比火车的速度的  10 倍还多   LENGTHKM1
汉语框架语义网(cfn)构建现状
You Raise Me Up
查询结果是一个有多个BlogArticles类的实例组成的序列对象,在Django中被称为QuerySet

./blog/views.py

from django.shortcuts import render
from .models import BlogArticles
# Create your views here.
def blog_title(request):
	blogs = BlogArticles.objects.all()
	return render(request, "blog/titles.html", {"blogs":blogs})

mysite/urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls', namespace="blog")),
]

blog/urls.py

from django.conf.urls import url, re_path
from . import views
app_name = 'blog'

urlpatterns = [
	#url(r'^$', views.blog_title, name="blog_titles")
	re_path('$', views.blog_title, name="blog_titles")
]

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值