Django(完整)
来源:互联网 发布:单片机c语言指令 编辑:程序博客网 时间:2024/06/16 21:59
##一. 创建 Django project
C:\Users\Administrator>cd C:\Users\Administrator\Desktop\standardwebC:\Users\Administrator\Desktop\standardweb>django-admin startproject firstsite
文件结构为:##二. 创建 Django App###1.创建Django appDjango project和Django app的区别![这里写图片描述](http://img.blog.csdn.net/20170520102251491?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR2Vla0xlZWU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)C:\Users\Administrator\Desktop\standardweb>cd firstsiteC:\Users\Administrator\Desktop\standardweb\firstsite>python manage.py startapp firstapp
文件结构如下:###2.settings.py中增加app#####三. 创建数据库###1.合并运行数据库C:\Users\Administrator\Desktop\standardweb\firstsite>python manage.py makemigrationsNo changes detectedC:\Users\Administrator\Desktop\standardweb\firstsite>python manage.py migrateOperations to perform: Apply all migrations: admin, auth, contenttypes, sessionsRunning migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying sessions.0001_initial... OKC:\Users\Administrator\Desktop\standardweb\firstsite>python manage.py runserverPerforming system checks...System check identified no issues (0 silenced).May 20, 2017 - 10:33:13Django version 1.11.1, using settings 'firstsite.settings'Starting development server at http://127.0.0.1:8000/Quit the server with CTRL-BREAK.
##四. 把 html,CSS,图片放到模板里###1.在firstapp中创建templates和static文件夹###html文件放在templates文件夹下,css、images所有静态文件放在static文件夹下###2.在settings.py中修改模板路径TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR), 'templates'.replace('\\','/')],#### 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, },]
###3.在html中增加模板标签,修改css、images等静态文件路径#在html首行增加{% load staticfiles %}#把css路径替换为这个href="{% static 'css/semantic.css' %}"#把所有图片路径替换为类似这个格式{% static 'images/star_banner.jpg' %}
##五. 创建后台和超级管理员#####1.cd 到 firstsite目录下,创建超级管理员python manage.py createsuperuser
执行runserver,进入管理员页面http://127.0.0.1:8000/admin/,登录密码
###2.在admin管理后台增加管理后台的数据在firstapp/models.py中创建数据库模型from django.db import models# Create your models here.class People(models.Model): name = models.CharField(null=True, blank=True,max_length=200) job = models.CharField(null=True, blank=True, max_length=200)
在firstapp/admin.py中引入注册数据库模型from django.contrib import adminfrom firstapp.models import People# Register your models here.admin.site.register(People)
###3.迁移数据库,合并数据库,运行服务器,刷新管理员页面C:\Users\Administrator\Desktop\website\firstsite>python manage.py makemigrationsC:\Users\Administrator\Desktop\website\firstsite>python manage.py migrateC:\Users\Administrator\Desktop\website\firstsite>python manage.py runserver
###4.管理后台新增内容###5.在models里面设置列表直接显示内容的标题
为了让内容列表里能直接显示标题,需要到models.py里面增加一个直接显示名字的函数
from django.db import models# Create your models here.class People(models.Model): name = models.CharField(null=True, blank=True,max_length=200) job = models.CharField(null=True, blank=True, max_length=200) def __str__(self):#新增 return self.name#新增
刷新页面可以直接看到内容标题。
6.在admin中继续增加文章管理
(1)在firstapp/models.py中创建文章的数据库模型
from django.db import models# Create your models here.class People(models.Model): name = models.CharField(null=True, blank=True,max_length=200) job = models.CharField(null=True, blank=True, max_length=200) def __str__(self): return self.nameclass Aritcle(models.Model):#新增 headline = models.CharField(null=True, blank=True,max_length=500)#新增 content = models.TextField(null=True, blank=True)#新增 def __str__(self):#新增 return self.headline#新增
(2)在firstapp/admin.py中注册文章的数据库模型
from django.contrib import adminfrom firstapp.models import People,Aritcle#新增# Register your models here.admin.site.register(People)admin.site.register(Aritcle)#新增
(3)在models.py下的cmd中迁移数据库和合并数据库
C:\Users\Administrator\Desktop\standardweb\firstsite>python manage.py makemigrationsMigrations for 'firstapp': firstapp\migrations\0002_aritcle.py - Create model AritcleC:\Users\Administrator\Desktop\standardweb\firstsite>python manage.py migrateOperations to perform: Apply all migrations: admin, auth, contenttypes, firstapp, sessionsRunning migrations: Applying firstapp.0002_aritcle... OK
(4)在后台管理员页面添加文章标题和内容
填写完文章,刷新页面
(5)在view层(fristapp/views.py)引入models中的文章数据
from django.shortcuts import render, HttpResponsefrom firstapp.models import People, Aritclefrom django.template import Context, Template# Create your views here.def index(request): context = {}#新建字典 article_list = Aritcle.objects.all()#变量article_list储存Article所有的文章 context['article_list'] = article_list #字典context中的article_list键(html中通过检索键提取文章内容)对应article_list变量的值 index_page = render(request, 'first_web_2.html', context) return index_page
(6)在template层中替换文章变量,遍历文章
{% load staticfiles %}<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>first web</title> <link rel="stylesheet" href="{% static 'css/semantic.css' %}" media="screen" title="no title" charset="utf-8"> <link href="https://fonts.googleapis.com/css?family=Oswald|Raleway" rel="stylesheet"> <style type="text/css"> h1 { font-family:'Oswald', sans-serif!important; font-size:40px; } body { font-family: 'Raleway', sans-serif; } p { font-family: 'Raleway', sans-serif; font-size:18px; } .ui.vertical.segment.masthead { height: 300px; background-image: url({% static 'images/star_banner.jpg' %}); background-size: cover; background-position: 100% 80%; } .ui.container.segment { width: 800px; } .ui.center.aligned.header.blogslogon { margin-top: 40px; } .ui.center.aligned.header.blogslogon p { margin-top: 10px; color: white; font-size: 10px; } .ui.container.nav { width: 500px; } </style> </head> <body> <div class="ui inverted vertical segment masthead"> <h1 class="ui center aligned header blogslogon" style="font-size:50px;font-family: 'Raleway', sans-serif!important;"> Bloger <p class="ui sub header"> everyone has a story to tell </p> </h1> </div> <div class="ui container nav"> <div class="ui borderless text three item menu "> <div class="ui simple dropdown item"> Categories <i class="dropdown icon"></i> <div class="menu"> <a class="item" href="">life</a> <a class="item" href="">tech</a> </div> </div> <a class="item"> Popular </a> <a class="item"> About </a> </div> </div> <div class="ui divider"></div> <div class="ui vertical segment"> {% for article in article_list %} <div class="ui container vertical segment"> <a href="#"> <h1 class="ui header"> {{ article.headline }} </h1> </a> <i class="icon grey small unhide">10,000</i> <p> {{ article.content|truncatewords:100 }} <a href="#"> <i class="angle tiny double grey right icon">READMORE</i> </a> </p> <div class="ui mini tag label"> life </div> </div> {% endfor %} </div> <div class="ui inverted vertical very padded segment"> Mugglecoding® </div> </body></html>
(7)在firstsite/urls.py中给函数分配url地址
"""firstsite URL ConfigurationThe `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.11/topics/http/urls/Examples:Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))"""from django.conf.urls import urlfrom django.contrib import adminfrom firstapp.views import index#从view层引入函数indexurlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index', index, name='index'),#url(‘url地址’,函数名,查找方便名)]
阅读全文
0 0
- Django(完整)
- django 模型完整实例
- django 快速实现完整登录系统(cookie)
- django实战(二)一个较完整的博客系统
- 04.Django实现完整登录系统的两种方法(cookie and session)
- Python 3.6+Django开发入门小案例(自动变化的问候)完整步骤
- django之request和response完整流程图
- Django完整的开发一个博客系统
- django 快速实现完整登录系统
- django 完成excel文件下载,完整例子
- Mac中安装Python+Django+MySQL完整步骤
- 在Django中如何正确完整地删除一个App
- 安装Pyhton,Django,Nginx及部署完整流程(有序)
- Jenkins + Django 完整实战,细化到每一步操作
- django(一)--- 安装django
- 【Django】Django 定时任务实现(django-crontab+command)
- 【Django】Django命令(Manager.py)
- 【Django】Django命令(Manager.py)
- hdu 1045(dfs + check)
- 原生JS实现图片懒加载
- eclipse 读取 SequenceFile
- 2016.这一年,我都干嘛了
- Windows界面绘图使用缓冲区避免闪烁:MFC版本 和 GDI版本
- Django(完整)
- Spring数据源配置之Druid
- C++pair对组
- Eclipse基本配置与快捷键
- 网络编程---网络图片浏览器
- 深入理解mybatis原理(八) MyBatis事务管理机制
- 对super小记录
- Spring数据源配置之jndi
- 判断pc还是移动端跳转到不同页面