Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Django¿ò¼ÜʵÏÖ¿ìËٴ
 
×÷Õߣº ÎÒÊÇÒ»Ö»³ÌÐòo
  3500  次浏览      37
 2019-11-14
 
±à¼­ÍƼö:
ÎÄÕÂÖ÷Òª½²Êö´î½¨Ò»¸ö¼òÒ׵IJ©¿ÍÐèÒª¼òµ¥µÄ¼¸¸öÒ³Ãæ£ºÊ×Ò³¡¢²©¿ÍÁбíÒ³¡¢²©¿ÍÄÚÈÝÒ³¡¢»¹Óв©¿ÍÌí¼ÓÒ³µÈµÈ £¬Ï£Íû¶Ô´ó¼ÒÓаïÖú¡£
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þDelores±à¼­£¬ÍƼö¡£

Ò»¡¢´´½¨ÏîÄ¿£¬´´½¨app£º

#´´½¨ÏîÄ¿
django-admin startproject Blog
#ÏîĿĿ¼ÏÂÌí¼Óapp
python manage.py startapp myblog

µ±È»¿ÉÒÔÖ±½ÓʹÓÃpycharm´´½¨£¬µ«ÊdzÌÐòÔ±¾ÍÒªÓгÌÐòÔ±µÄ±Æ¸ñ£¬ËùÒÔÔÚcmdÖÐÇôúÂëΪÉϳË֮ѡ£¬×¢ÒâÔÚ×Ô¼ºÂ·¾¶Ï´´ÏîÄ¿£¬ÔÚÏîÄ¿Àï´´½¨app¡£

¶þ¡¢´´½¨ºÃÁËÒÔºó¿ªÊ¼ÐÞ¸Äsetting.pyÎļþ

£¨1£©Êý¾Ý¿âʹÓÃĬÈϵÄsqlite3¾ÍÐÐÁË

£¨2£©ÐÞ¸ÄstaticÎļþÅäÖÃ

STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)

£¨3£©¼ÓÔØapp

Èý¡¢½¨Ä£

ÔÚappµÄmodels.pyÖУº

ÎÄÕÂ×ֶΣº±êÌâ¡¢×÷Õß¡¢Ö÷Ìâ¡¢·ÖÀࣨÍâ¼ü£©¡¢·¢²¼Ê±¼ä£¨·¢²¼Ê±¼äΪÈë¿âʱ¼ä£¬¿ÉÒÔʹÓÃ×Ô¶¯Ìí¼Óʱ¼ä£©

·ÖÀà×ֶΣºÀà±ð

from django.db import models
class Sort(models.Model):
sort = models.CharField
(max_length=64)
class Blog(models.Model):
title = models.CharField
(max_length=128)
author = models.CharField
(max_length=32)
body = models.CharField
(max_length=2048)
classify = models.ForeignKey
(Sort,on_delete=True)
time = models.DateTimeField
(auto_now=True)

ͬ²½Êý¾Ý¿â£º¿ÉÒÔÔÚpycharmÖеã»÷toolsÈ»ºórun mange.py À´ÊäÈëͬ²½ÃüÁҲ¿ÉÒÔ½øÈëÏîĿĿ¼ʹÓÃcmd½øÐÐͬ²½

ͬ²½ÃüÁ

python manage.py check
//¼ì²éÓï·¨
python manage.py makemigrations
//ͬ²½±í
python manage.py migrate
//ͬ²½×Ö¶Î

ËÄ¡¢Ç°¶ËÒ³ÃæºÍÑùʽµ¼Èë

½«²©¿ÍÄ£°åÖÐindexÒ³ÃæºÍÑùʽ·ÅÈëappÖУ¬appÖеÄstaticÎļþ¼ÐÒ»¶¨ÒªÔÙ´´½¨Ò»¸öÓÃÓÚÇø·ÖappµÄÎļþ¼Ð£¬ÔÙ½«cssºÍimage´æÈëÇø·ÖÎļþ¼ÐÖС£

ÎÒÃÇÒ»¹²ÒªÖÆ×÷ËĸöÒ³Ãæ£¬Ê×Ò³¡¢ÁбíÒ³¡¢ÏêÇéÒ³ºÍÌí¼ÓÒ³£¬ÓÉÓÚÓдóÁ¿µÄÑùÊ½ÖØ¸´£¬ÀýÈçͼÖкìȦ²¿·Ö£º

ËùÒÔÖÆ×÷base.htmlÒ³Ãæ£¬½«Ã¿Ò³¹²ÐԵĵط½ÌáÈ¡³öÀ´£¬ÔÙ½«¸öÐԵĵط½É¾³ý£¬¼ÓÈë¿é±ê¼Ç£¬ÒÔÓÃÀ´´æ·Å¸öÐÔ²¿·Ö

¸ü¸ÄÊ×Ò³£¬Ôö¼ÓÌí¼ÓÒ³¡¢ÁбíÒ³ºÍÏêÇéÒ³£¬ÈÃÄÚÈÝÏÈΪ¿Õ£º

ËùÓÐÒ³ÃæÖеÄÄÚÈݶ¼ÎªÈçÏ£º

{% extends 'base.html' %}
<!--¼Ì³ÐbaseÒ³Ãæ-->
{% load static %}
{% block content %} <!--¿é±ê¼Ç-->
{% endblock %}

Ò³ÃæÐ§¹ûÈçÏ£º

ÕâÑùǰ¶ËÒ³Ãæ¾ÍÒѾ­¸ã¶¨ÁË¡£

Îå¡¢ÖÆ×÷ÎÄÕÂÌí¼ÓÒ³

1¡¢¸»Îı¾ÅäÖÃ

ÎÄÕÂÌí¼ÓÐèҪʹÓø»Îı¾±à¼­Æ÷£¬¸»Îı¾±à¼­Æ÷Ö§³ÖͼƬÌí¼Ó£¬×ÖÌåÑùʽµÈ¹¦ÄÜ¡£

ÒªÏëʹÓø»Îı¾±à¼­Æ÷Ê×ÏÈÐèÒª°²×°ckeditorÄ£¿é£¬cmdÖÐÊäÈëÃüÁî½øÐа²×°£º

pip install django-ckeditor

È»ºóÅäÖÃsettingÎļþ£º

£¨1£©¼ÓÔØapp

×¢ÒâÓÐÁ½¸öapp

£¨2£©ÔÚsettingÎļþ×îºóÌí¼ÓÁ½ÐдúÂ룬ÓÃÓÚ´¦ÀíÉÏ´«µÄÎļþµÄλÖÃ

CKEDITOR_UPLOAD_PATH
= "static/upload"
CKEDITOR_IMAGE_BACKEND
= "pillow"

ÅäÖ÷ÓÉ£¨urlÎļþ£©

ÔÚÖ÷·ÓÉÖмÓÔØckeditorµÄ×Ó·ÓÉ

path('ckeditor/',include
('ckeditor_uploader.urls')),

Èçͼ£º

ÐÞ¸ÄmodelsÖÐÊý¾Ý¿â×ֶΣ¬²»ÓÃÖØÐÂͬ²½£¬ÒòΪ×Ö¶ÎÃû×ÖËäÈ»¸Ä±ä£¬µ«ÊÇʵ¼ÊÉÏ»¹ÊÇ×Ö·û´®£º

from django.db import models
from ckeditor_uploader.fields
import RichTextUploadingField
#µ¼Èëckeditor
class Sort(models.Model):
sort = models.CharField
(max_length=64)
class Blog(models.Model):
title = models.CharField
(max_length=128)
author = models.CharField
(max_length=32)
body = RichTextUploadingField()
#ÐÞ¸Ä×Ö¶ÎΪ¸»Îı¾¸ñʽ
classify = models.ForeignKey
(Sort,on_delete=True)
time = models.DateTimeField
(auto_now=True)

ÊÕ¼¯¾²Ì¬Îļþ

ÔÙ¸øÇ°¶ËʹÓÃ֮ǰ»¹µÃÏȽ«ckeditorµÄ¾²Ì¬ÎļþÊÕ¼¯µ½ÏîÄ¿µÄ¾²Ì¬ÎļþÖУº

ÔÚsettingÖУ¬ÐÞ¸ÄÅäÖã¬×¢Ê͵ô֮ǰµÄ¾²Ì¬ÎļþÉèÖã¬Ìí¼ÓÊÕ¼¯ÅäÖãº

STATIC_URL = '/static/'
# STATICFILES_DIRS = (
# os.path.join(BASE_DIR,'static'),
# )
STATIC_ROOT = os.path.join
(BASE_DIR,'static')

ÔÚÏîÄ¿ÖÐʹÓÃcmdÊäÈëÃüÁî»òÕßpycharmµã»÷tools-run manage.pyÊäÈëÃüÁî½øÐÐÊÕ¼¯£º

python manage.py collectstatic

ÊÕ¼¯Íê³É£¬¸Ä»ØÅäÖãº

STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join
(BASE_DIR,'static'),
)
# STATIC_ROOT = os.path.join
(BASE_DIR,'static')

2¡¢ÖÆ×÷Ìí¼ÓÒ³Âß¼­

Ìí¼ÓÊÓͼº¯Êý¡¢ÅäÖ÷ÓÉ

ÊÓͼviews.py

def addblog(request):
return render(request,'
addblog.html',locals())

·ÓÉurl.py

from django.contrib import admin
from django.urls import path,
re_path,include
from myblog.views import *
urlpatterns = [
path('admin/', admin.site.urls),
path('ckeditor/', include
('ckeditor_uploader.urls')),
path('addbl/',addblog),
]

±à¼­htmlÒ³Ãæ£º

Ìí¼Óform±íµ¥£¬¸»Îı¾×Ô´øÌá½»°´Å¥£¬ËùÒÔ¿ÉÒÔʹÓÃ×Ô´øµÄÌá½»°´Å¥¡£

µ«ÊÇÖ»»áÌá½»¸»Îı¾ÒÔÉÏËùÓÐ±íµ¥£¬ÒÔϲ»»áÌá½»£¬Èç¹ûÏë×Ô¼ºÐÞ¸ÄÌá½»°´Å¥Î»Ö㬿ÉÒÔ°Ù¶ÈckeditorÅäÖÃÐ޸ġ£

»¹ÓоÍÊDZ¾µØÍ¼Æ¬ÉÏ´«¹¦ÄÜ¡¢°Ù¶È×ÔÐÐÌí¼Ó£¬ºÜ¼òµ¥¡£

ǰ¶ËÒ³Ãæ×¼±¸¹¤×÷£º

£¨1£©ÎÄÕÂÀàÐÍ£º

ÎÒÃÇ´´½¨ÁËÀàÐÍµÄ±í£¬Ò»°ãÀàÐÍÊÇ×÷ΪѡÏîÀ´Ñ¡Ôñ£¬ËùÒÔÏÈÀûÓÃpycharmµÄÊý¾Ý¿â¹¦ÄܰÑÀàÐÍÖ±½ÓдÈëµ½Êý¾Ý¿âµÄÀàÐͱíÖС£

µã»÷pycharm×Ô´øµÄÊý¾Ý¿â¹ÜÀí

Êý¾Ý¿âÍÏÈëÊý¾Ý¿â¹ÜÀíÖУ¬¸øsort±íÌí¼ÓÊý¾Ý£ºÔ­´´¡¢×ªÔØ

¼ÓºÅÌí¼Ó £¬Ìí¼Óºó±£´æ£¬²»ÓùÜÎÒµÚÈýÁС¢Ö®Ç°½¨¿âд´íÁË¡£

£¨

2£©±àдǰ¶ËÑùʽ£º

ÓÃform±íµ¥°ü¹ü£¬formÊôÐÔÉèÖÃΪpost£¬Ìí¼Ócsrf·ÀÓù£¬ÎÄÕÂÖ÷ÌâʹÓÃtextarea±êÇ©£¬Ìí¼ÓnameÊôÐÔ·½±ã¸øtextareaÌí¼Ó¸»Îı¾Ñùʽ¡£

{% extends 'base.html' %}
<!--¼Ì³ÐÄ£°å-->
{% load static %}
<!--¼ÓÔØ¾²Ì¬Îļþ-->
{% block content %}
<form method="post" action="">
{% csrf_token %}
<span style="color:whitesmoke;
font-size: 20px;margin-left: 30px;">
ÎÄÕ±êÌ⣺</span>
<input type="text"
name="title"
style="background: rgba(0,0,0,0.3);
width: 450px;
height: 40px;margin: 20px 20px;
border-radius: 6px;outline-style: none;
box-shadow: 0 0 4px grey">
<select name="classify"
style="width:70px;height:25px;
color:white;margin:20px 20px;
border-radius: 6px;
background: rgba(0,0,0,0.3)" >ÎÄÕÂÀàÐÍ£º
<option id="0" value="0">ÇëÑ¡Ôñ</option>
<option id="1" value="1">×ªÔØ</option>
<!--selectÌá½»µÄÊÇÑ¡ÏîµÄvalue£¬
valueµÄÖµÒª¶ÔÓ¦·ÖÀà±íµÄid-->
<option id="2" value="2">Ô­´´</option>
</select>
<input type="hidden"
value="HEXU" name="name">
<textarea style="height: 900px"
name="body" id="" cols="30" rows="10" >
</textarea>
</form>
{% endblock %}

textareaʹÓõÄÊǸ»Îı¾¸ñʽ£¬ËùÒÔÏȵ¼È븻Îı¾µÄjs°ü£¬È»ºó¸øtextareaÌí¼Ó¸»Îı¾Ñùʽ£º

{% extends 'base.html' %}
<!--¼Ì³ÐÄ£°å-->
{% load static %}
<!--¼ÓÔØ¾²Ì¬Îļþ-->
{% block content %}
<script src
="{% static 'ckeditor/ckeditor
/ckeditor.js' %}"></script>
<!--¼ÓÔØ¸»Îı¾js-->
<form method="post" action="">
{% csrf_token %}
<span style="color:whitesmoke;
font-size: 20px;margin-left: 30px;">
ÎÄÕ±êÌ⣺</span><input type="text"
name="title" style="background:
rgba(0,0,0,0.3);width: 450px;
height: 40px;margin: 20px 20px;
border-radius: 6px;
outline-style: none;
box-shadow: 0 0 4px grey">
<select name="classify" style="width: 70px;height:25px;color:white;
margin:20px 20px;border-radius: 6px;
background: rgba(0,0,0,0.3)" >ÎÄÕÂÀàÐÍ£º
<option id="0" value="0">ÇëÑ¡Ôñ</option>
<option id="1" value="1">×ªÔØ</option>
<!--selectÌá½»µÄÊÇÑ¡ÏîµÄvalue£¬
valueµÄÖµÒª¶ÔÓ¦·ÖÀà±íµÄid-->
<option id="2" value="2">Ô­´´</option>
</select>
<input type="hidden"
value="HEXU" name="name">
<textarea style="height: 900px"
name="body" id="" cols="30" rows="10" >
</textarea>
</form>
<!--¸øtextareaÌí¼ÓÑùʽ uicolorÊǸ»Îı¾Ö÷ÌâÉ«-->
<script>
CKEDITOR.replace('body',{uiColor:'#FFFFFF'});
</script>
{% endblock %}

Æô¶¯ÏîÄ¿ÊäÈë127.0.0.1/addbl/²é¿´Ñùʽ£º

£¨3£©ÊÓͼ´¦ÀíÌá½»µÄÊý¾Ý

ÐÞ¸ÄÊÓͼÖеIJ©¿ÍÌí¼Óº¯Êý£¬½«Ç°¶ËÉÏ´«µÄÊý¾Ý»ñÈ¡ºó´æÈëÊý¾Ý¿â¡£

def addblog(request):
if request.method ==
'POST' and request.POST:
ab = Blog()
ab.title = request.
POST.get('title')
ab.author = request.
POST.get('name')
ab.body = request.
POST.get('body')
classify = request.
POST.get('classify')
ab.classify = Sort.objects.
get(id=classify)
ab.save()
return render
(request,'addblog.html',locals())

£¨4£©Ìí¼ÓÒ³¾Í´Ë×öÍ꣬¿ÉÒÔ¸´ÖÆcsdnµÄÎÄÕ·ÅÔÚ¸»Îı¾¿òÖУ¬²é¿´ÊÇ·ñ³ÌÐòÕýÈ·¡£

Áù¡¢ÖÆ×÷Ê×Ò³

Ê×ÏÈÌí¼ÓÊÓͼºÍ·ÓÉ

ÊÓͼº¯Êýviews.py£º

Òª½«ÎÄÕ³ÊÏÖÔÚÊ×Ò³£¬±ØÐë´ÓÊý¾Ý¿âÖн«ÎÄÕÂÈ«²¿È¡³öÀ´£¬ËùÒÔÊÓͼº¯ÊýÈçÏ£º

def index(request):
myblogs = Blog.objects.all()
[::-1] #È¡Êý¾Ý¿âÖÐËùÓÐÎÄÕÂ
return render
(request,'index.html',locals())

·ÓÉview.py

·ÓÉ¿ÉÒÔʹÓÃÕýÔòÆ¥ÅäÒ»¸ö¿Õ£¬ÕâÑùÖ±½ÓÊäip£«¶Ë¿ÚºÅ¾Í¿ÉÒÔ·ÃÎÊÊ×Ò³

rom django.contrib import admin
from django.urls import path,
re_path,include
from myblog.views import *
urlpatterns = [
path('admin/', admin.site.urls),
path('ckeditor/', include
('ckeditor_uploader.urls')),
path('addbl/',addblog),
path('index/',index),
re_path('^$',index),
]

ǰ¶ËÒ³Ãæ

ÒÔʱ¼äÖáµÄ·½Ê½Õ¹ÏÖ²©¿Í£¬ËùÒÔÏȵ¼Èëʱ¼äÖáÑùʽ£¬ÔÚʱ¼äÖáÄ£°åÊ×Ò³£¬¸´ÖÆÊ±¼äÖá´úÂ룬²¢½«cssÎļþÒ»Æð¸´ÖƳöÀ´¡£

{% extends 'base.html' %}
{% load static %}
{% block content %}
<!--µ¼Èëʱ¼äÖácss-->
<link href="{% static '
/myblog/css/index.css' %}"
rel="stylesheet">
<ul class="cbp_tmtimeline">
<li>
<time class="cbp_tmtime">
<span>08-08</span>
<span>2017</span></time>
<div class="cbp_tmicon"></div>
<div class="cbp_tmlabel"
data-scroll-reveal="enter right over 1s" >
<h2>Èý²½ÊµÏÖ¹ö¶¯Ìõ´¥¶¯css¶¯»­Ð§¹û</h2>
<p><span class="blogpic">
<a href="/"><img src="images/t03.jpg"></a>
</span>ÏÖÔںܶàÍøÕ¾¶¼ÓÐÕâÖÖЧ¹û£¬
ÎÒ¾ÍÕûÀíÁËһϣ¬·ÖÏí³öÀ´¡£
ÀûÓùö¶¯ÌõÀ´ÊµÏÖ¶¯»­Ð§¹û£¬
ScrollReveal.js ÓÃÓÚ´´½¨ºÍ¹ÜÀíÔªËØ
½øÈë¿ÉÊÓÇøÓòʱµÄ¶¯»­Ð§¹û£¬
°ïÖúÄãµÄÍøÕ¾Ôö¼ÓÎüÒýÁ¦...</p>
<a href="/" target="_blank" class="readmore">
ÔĶÁÈ«ÎÄ&gt;&gt;</a>
</div>
</li>
</ul>
{% endblock %}

ÐÞ¸ÄÑùʽ´ïµ½ÎÒÃÇÏëÒªµÄЧ¹û

ǰ̨»ñÈ¡µÄÊý¾ÝÊÇ´æ·ÅÔÚÁбíÖеÄ×ֵ䣬ËùÒÔÐèҪʹÓÃÑ­»·½«Êý¾ÝÑ­»·³öÀ´¡£

¸»Îı¾ÊÇÒÔhtml¸ñʽµÄ×Ö·û´®´æ´¢ÔÚÊý¾Ý¿âÖеģ¬ËùÒÔÈç¹ûÖ±½ÓÏÔʾ³öÀ´»áÊÇÒ»¸ö×Ö·û´®£¬¶ø²»ÊÇÎÄÕÂÑùʽ£¬Õâ¾ÍÐèҪʹÓùýÂËÆ÷ÈÃ×Ö·û´®×ªÎªÑùʽ£¬ËùÒÔÔÚÑ­»·Êý¾ÝµÄʱºò»¹ÐèÒª¸øÎÄÕÂÖ÷Ìâ¼ÓÉÏ safe ¹ýÂËÆ÷

µ«ÊÇÎÄÕÂÖ÷ÌåºÜ³¤£¬ÎÒÃÇÕâ¸öÖ»ÊÇÒ»¸öÏêÇéÒ³£¬ËùÒÔ¸øÎÄÕÂÖ÷Ìâ¼ÓÒ»¸ö¿é£¬ÏÞÖÆ³¤ÓÚ¿í£¬Ìí¼Ó³¬³öÒþ²ØÊôÐÔ£º

{% extends 'base.html' %}
{% load static %}
{% block content %}
<link href="{% static '
/myblog/css/index.css' %}"
rel="stylesheet">
<ul class="cbp_tmtimeline">
{% for i in myblogs %}
<li>
<time class="cbp_tmtime">
<span>{{ i.time.month }}-
{{ i.time.day }}</span>
<span>{{ i.time.year }}</span>
</time>
<div class="cbp_tmicon"></div>
<div class="cbp_tmlabel"
data-scroll-reveal="enter right over 1s" >
<h2>
<a href="" style="font-size:25px;
text-decoration: none">
{{ i.title }}</a></h2>
<div style="margin-left:15px;
height: 90px;overflow: hidden;
margin-bottom: 20px">
{{ i.body|safe }}</div>
<h6>
<a href="" style="margin-left:15px;
color:grey;text-decoration: none">
{{ i.classify.sort }}</a>
<a href="" style="margin-left:5px;
color:grey;text-decoration: none">
{{ i.time.date }}{{ i.time.hour }}</a>
</h6>
</div>
</li>
{% endfor %}
</ul>
{% endblock %}

ÕâʱÊ×ҳʱ¼äÖáչʾ¾ÍʵÏÖÁË£¨Ê±¼äÖá±³¾°ÑÕɫͨ¹ýÐÞ¸ÄcssÑùʽÀ´Ð޸ģ©£º

Æß¡¢ÎÄÕÂÏêÇéÒ³Ãæ

¼ÈÈ»ÓÐÁËÁбíÒ³£¬Í¨¹ýµã»÷Áбí¾Í¿ÉÒԲ鿴ÎÄÕÂÏêÇéÁË£¬ÏêÇéÒ³ÊÇ×î¼òµ¥µÄÒ³Ãæ£º

´´½¨ÏêÇéÒ³html

Ôö¼ÓÊÓͼº¯Êý

ÊÓͼº¯ÊýÐèÒªÌí¼ÓÒ»¸ö²ÎÊýnum£¬Í¨¹ý´«µÝ²ÎÊýÀ´È·¶¨´ò¿ªµÄÊÇÄÄһƪÎÄÕ£¬²¢ÇÒͨ¹ý²ÎÊýÀ´»ñÈ¡Êý¾Ý¿â¶ÔÓ¦µÄÎÄÕ¡£

def blogs(request,num):
num = int(num)
myblog = Blog.objects.filter
(id = num).first() #´ÓÊý¾Ý¿âÈ¡ÎÄÕÂ
return render(request,
'blog.html', locals())

Ìí¼Ó·ÓÉ

ÓÉÓÚÐèҪͨ¹ý·Óɸøº¯Êý´«µÝ²ÎÊý£¬ËùÒÔÕâÀïµÄ·ÓÉÐèҪʹÓÃÕýÔòµÄÐÎʽ£º

from django.contrib import admin
from django.urls import
path,re_path,include
from myblog.views import *
urlpatterns = [
path('admin/', admin.site.urls),
path('ckeditor/', include
('ckeditor_uploader.urls')),
path('addbl/',addblog),
path('index/',index),
re_path('^$',index),
re_path('blogs/(\d+)',blogs),
]

ÐÞ¸ÄÊ×Ò³ÁбíÖÐa±êÇ©

ÐÞ¸ÄÎÄÕ±êÌâa±êÇ©µÄÌø×ªµØÖ·£¬Í¨¹ýÎÄÕµÄĬÈÏ×Ö¶ÎidÀ´È·¶¨µã»÷µÄÊÇÄÄÆªÎÄÕÂÎÄÕ¡£

±àдÏêÇéҳǰ¶ËÑùʽ

ÊÓͼº¯Êý´«µÝ¹ýÀ´ÁËÊý¾Ý¿âÖÐÎÄÕµÄÏêÇ飬ͨ¹ý±êÇ©»ñÈ¡³öÀ´£¬µ÷ÕûÑùʽ£º

{% extends 'base.html' %}
{% load static %}
{% block content %}
<div style="width: 90%;
margin-left: 5%;
padding-bottom: 100px;
padding-top: 50px">
<h2 style="margin-bottom: 30px;">
{{ myblog.title }}</h2>
<h3 style="color: grey;
margin: 10px 0">{{ myblog.author }}
<label style="color: grey;
font-size:15px;margin-bottom: 30px;
margin-left: 20px">
{{ myblog.classify.sort }},
{{ myblog.time }}</label></h3>
<div style="width: 90%;margin: 30px 0 ">
{{ myblog.body|safe }}
</div>
</div>
{% endblock %}

ÏêÇéÒ³Ñùʽ£º

ÕâÑùÒ»¸öÓµÓлù´¡¹¦ÄܵIJ©¿Í¾Í×öÍêÁË£¬Ê£ÏµĹ¦Äܶ¼ÊÇǧƪһÂÉ£¬¸ù¾Ý×Ô¼ºµÄϲºÃ½øÐÐÀ©Õ¹¡£

 
   
3500 ´Îä¯ÀÀ       37
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ