1. 搭建环境请参考:http://www.cnblogs.com/momo8238/p/7508677.html

2.创建3张表备用

models.py

  1. from django.db import models
  2. # Create your models here.
  3.  
  4. class Category(models.Model):
  5. caption=models.CharField(max_length=16)
  6.  
  7. class ArticleType(models.Model): #如果类型是可增可减的,我们就把它放到表里面
  8. caption=models.CharField(max_length=16)
  9.  
  10. class Article(models.Model):
  11. title=models.CharField(max_length=32)
  12. content=models.CharField(max_length=255)
  13. category=models.ForeignKey(Category)
  14. article_type=models.ForeignKey(ArticleType)
  15.  
  16. # 如果类型是一成不变的,我们就把它放到内存里面。它就永远只在内存中保存一份。
  17. # type_choice=(
  18. # (0,'Python'),
  19. # (1,'OpenStack'),
  20. # (2,'Linux'),
  21. # )
  22. # article_type_id=models.IntegerField(choices=type_choice)

运行下面2句创建表:

  1. python manage.py makemigrations
  2. python manage.py migrage

3. 往表里面增加数据

4. 用原来的方法实现查询。

urls.py

  1. from django.conf.urls import url
  2. from django.contrib import admin
  3. from app01 import views
  4.  
  5. urlpatterns = [
  6. url(r'^admin/', admin.site.urls),
  7. url(r'^article/', views.article),
  8. ]

views.py

  1. from django.shortcuts import render
  2. from app01 import models
  3.  
  4. def article(request):
  5. result=models.Article.objects.all()
  6. return render(request,'article.html',{'result':result})

article.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <h1>查询结果</h1>
  9. <ul>
  10. {% for row in result %}
  11. <li>{{row.id}}-{{row.title}}</li>
  12. {% endfor %}
  13. </ul>
  14. </body>
  15. </html>

页面效果:

5. 下面尝试实现组合查询

6. 把条件和内容都显示到页面上。

views.py

  1. from django.shortcuts import render
  2. from app01 import models
  3. article_type_list=models.ArticleType.objects.all()
  4. category_list=models.Category.objects.all()
  5.  
  6. result=models.Article.objects.filter(**condition)
  7. return render(
  8. request,
  9. 'article.html',
  10. {
  11. 'result':result,
  12. 'article_type_list':article_type_list,
  13. 'category_list':category_list,
  14. }
  15. )

article.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. .condition a{
  8. display:inline-block;
  9. padding:3px 5px;
  10. border:1px solid #dddddd;
  11. margin:5px 5px;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <h1>过滤条件</h1>
  17. <div class="condition">
  18. <div>
  19. <a>全部</a>
  20. {% for row in article_type_list %}
  21. <a>{{row.caption}}</a>
  22. {% endfor %}
  23. </div>
  24. <div>
  25. <a>全部</a>
  26. {% for row in category_list %}
  27. <a>{{row.caption}}</a>
  28. {% endfor %}
  29. </div>
  30. </div>
  31. <h1>查询结果</h1>
  32. <ul>
  33. {% for row in result %}
  34. <li>{{row.id}}-{{row.title}}</li>
  35. {% endfor %}
  36. </ul>
  37. </body>
  38. </html>

页面效果:

7. 为了后面可以自由选择,需要修改urls.py 为可接收参数类型的。

说明:article_type_id=第1个参数; category_id=第2个参数。并且把它们两者作为数据库查询的条件直接传递进去。

  1. from django.conf.urls import url
  2. from django.contrib import admin
  3. from app01 import views
  4.  
  5. urlpatterns = [
  6. url(r'^admin/', admin.site.urls),
  7. url(r'^article-(?P<article_type_id>\d+)-(?P<category_id>\d+).html', views.article),
  8. ]

打印看下:

程序的进化:

8. 增加“全部“所对应”的展示所有选项的功能

程序说明:

效果展示:

程序粘贴:
models.py

  1. from django.db import models
  2. # Create your models here.
  3.  
  4. class Category(models.Model):
  5. caption=models.CharField(max_length=16)
  6.  
  7. class ArticleType(models.Model): #如果类型是可增可减的,我们就把它放到表里面
  8. caption=models.CharField(max_length=16)
  9.  
  10. class Article(models.Model):
  11. title=models.CharField(max_length=32)
  12. content=models.CharField(max_length=255)
  13. category=models.ForeignKey(Category)
  14. article_type=models.ForeignKey(ArticleType)

urls.py

  1. from django.conf.urls import url
  2. from django.contrib import admin
  3. from app01 import views
  4.  
  5. urlpatterns = [
  6. url(r'^admin/', admin.site.urls),
  7. url(r'^article-(?P<article_type_id>\d+)-(?P<category_id>\d+).html', views.article),
  8. ]

views.py

  1. from django.shortcuts import render
  2. from app01 import models
  3.  
  4. def article(request,*args,**kwargs):
  5. # {'article_type_id':'1','category_id':'2'},但是这里面没有包含“全部”所对应的项。
  6. print(kwargs)
  7. condition={}
  8. for k,v in kwargs.items():
  9. if v=='0':
  10. pass
  11. else:
  12. condition[k]=v
  13.  
  14. article_type_list=models.ArticleType.objects.all()
  15. category_list=models.Category.objects.all()
  16.  
  17. result=models.Article.objects.filter(**condition)
  18. return render(
  19. request,
  20. 'article.html',
  21. {
  22. 'result':result,
  23. 'article_type_list':article_type_list,
  24. 'category_list':category_list,
  25. }
  26. )

article.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. .condition a{
  8. display:inline-block;
  9. padding:3px 5px;
  10. border:1px solid #dddddd;
  11. margin:5px 5px;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <h1>过滤条件</h1>
  17. <div class="condition">
  18. <div>
  19. <a>全部</a>
  20. {% for row in article_type_list %}
  21. <a>{{row.caption}}</a>
  22. {% endfor %}
  23. </div>
  24. <div>
  25. <a>全部</a>
  26. {% for row in category_list %}
  27. <a>{{row.caption}}</a>
  28. {% endfor %}
  29. </div>
  30. </div>
  31. <h1>查询结果</h1>
  32. <ul>
  33. {% for row in result %}
  34. <li>{{row.id}}-{{row.title}}</li>
  35. {% endfor %}
  36. </ul>
  37. </body>
  38. </html>

8. 在页面上增加选择的功能

通过request.path_info 获取当前url

根据名字反生成URL

9. 在上次URL(当前URL)的基础上实现组合查询,这块要理解,很重要。

urls.py

  1. from django.conf.urls import url
  2. from django.contrib import admin
  3. from app01 import views
  4.  
  5. urlpatterns = [
  6. url(r'^admin/', admin.site.urls),
  7. url(r'^article-(?P<article_type_id>\d+)-(?P<category_id>\d+).html', views.article,name='article'),
  8. ]

views.py

  1. from django.shortcuts import render
  2. from app01 import models
  3.  
  4. def article(request,*args,**kwargs):
  5. # {'article_type_id':'1','category_id':'2'},但是这里面没有包含“全部”所对应的项。
  6. print(kwargs)
  7. print(request.path_info)
  8. from django.urls import reverse
  9. url=reverse('article',kwargs=kwargs)
  10. print(url)
  11. condition={}
  12. for k,v in kwargs.items():
  13. if v=='0':
  14. pass
  15. else:
  16. condition[k]=v
  17.  
  18. article_type_list=models.ArticleType.objects.all()
  19. category_list=models.Category.objects.all()
  20.  
  21. result=models.Article.objects.filter(**condition)
  22. return render(
  23. request,
  24. 'article.html',
  25. {
  26. 'result':result,
  27. 'article_type_list':article_type_list,
  28. 'category_list':category_list,
  29. 'arg_dict':kwargs
  30. }
  31. )

article.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. .condition a{
  8. display:inline-block;
  9. padding:3px 5px;
  10. border:1px solid #dddddd;
  11. margin:5px 5px;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <h1>过滤条件</h1>
  17. <div class="condition">
  18. <div>
  19. <div>article_type</div>
  20. <a>全部</a>
  21. {% for row in article_type_list %}
  22. <a href="/article-{{row.id}}-{{arg_dict.category_id}}.html">{{row.caption}}</a>
  23. {% endfor %}
  24. </div>
  25. <div>
  26. <div>category</div>
  27. <a>全部</a>
  28. {% for row in category_list %}
  29. <a href="/article-{{arg_dict.article_type_id}}-{{row.id}}.html">{{row.caption}}</a>
  30. {% endfor %}
  31. </div>
  32. </div>
  33. <h1>查询结果</h1>
  34. <ul>
  35. {% for row in result %}
  36. <li>{{row.id}}-{{row.title}}</li>
  37. {% endfor %}
  38. </ul>
  39. </body>
  40. </html>

页面效果:

10. 把选中的项目高亮显示

views.py

  1. from django.shortcuts import render
  2. from app01 import models
  3.  
  4. def article(request,*args,**kwargs):
  5. # {'article_type_id':'1','category_id':'2'},但是这里面没有包含“全部”所对应的项。
  6. print(kwargs)
  7. print(request.path_info)
  8. from django.urls import reverse
  9. url=reverse('article',kwargs=kwargs)
  10. print(url)
  11. condition={}
  12. for k,v in kwargs.items():
  13. kwargs[k]=int(v) #转成数字类型
  14. if v=='0':
  15. pass
  16. else:
  17. condition[k]=v
  18.  
  19. article_type_list=models.ArticleType.objects.all()
  20. category_list=models.Category.objects.all()
  21.  
  22. result=models.Article.objects.filter(**condition)
  23. return render(
  24. request,
  25. 'article.html',
  26. {
  27. 'result':result,
  28. 'article_type_list':article_type_list,
  29. 'category_list':category_list,
  30. 'arg_dict':kwargs
  31. }
  32. )

article.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. .condition a{
  8. display:inline-block;
  9. padding:3px 5px;
  10. border:1px solid #dddddd;
  11. margin:5px 5px;
  12. }
  13. .condition a.active{
  14. background-color:brown;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <h1>过滤条件</h1>
  20. <div class="condition">
  21. <div>
  22. <div>article_type</div>
  23. <a>全部</a>
  24. {% for row in article_type_list %}
  25. {% if row.id == arg_dict.article_type_id %}
  26. <a class="active" href="/article-{{row.id}}-{{arg_dict.category_id}}.html">{{row.caption}}</a>
  27. {% else %}
  28. <a href="/article-{{row.id}}-{{arg_dict.category_id}}.html">{{row.caption}}</a>
  29. {% endif %}
  30. {% endfor %}
  31. </div>
  32. <div>
  33. <div>category</div>
  34. <a>全部</a>
  35. {% for row in category_list %}
  36. {% if row.id == arg_dict.category_id %}
  37. <a class="active" href="/article-{{arg_dict.article_type_id}}-{{row.id}}.html">{{row.caption}}</a>
  38. {% else %}
  39. <a href="/article-{{arg_dict.article_type_id}}-{{row.id}}.html">{{row.caption}}</a>
  40. {% endif %}
  41. {% endfor %}
  42. </div>
  43. </div>
  44. <h1>查询结果</h1>
  45. <ul>
  46. {% for row in result %}
  47. <li>{{row.id}}-{{row.title}}</li>
  48. {% endfor %}
  49. </ul>
  50. </body>
  51. </html>

页面效果:

11. 给全部也增加上。最重要的点就是:要获取上次URL给传过来的参数。

程序粘贴:

models.py

  1. from django.db import models
  2. # Create your models here.
  3.  
  4. class Category(models.Model):
  5. caption=models.CharField(max_length=16)
  6.  
  7. class ArticleType(models.Model): #如果类型是可增可减的,我们就把它放到表里面
  8. caption=models.CharField(max_length=16)
  9.  
  10. class Article(models.Model):
  11. title=models.CharField(max_length=32)
  12. content=models.CharField(max_length=255)
  13. category=models.ForeignKey(Category)
  14. article_type=models.ForeignKey(ArticleType)

urls.py

  1. from django.conf.urls import url
  2. from django.contrib import admin
  3. from app01 import views
  4.  
  5. urlpatterns = [
  6. url(r'^admin/', admin.site.urls),
  7. url(r'^article-(?P<article_type_id>\d+)-(?P<category_id>\d+).html', views.article,name='article'),
  8. ]

views.py

  1. from django.shortcuts import render
  2. from app01 import models
  3.  
  4. def article(request,*args,**kwargs):
  5. # {'article_type_id':'1','category_id':'2'},但是这里面没有包含“全部”所对应的项。
  6. print(kwargs)
  7. print(request.path_info)
  8. from django.urls import reverse
  9. url=reverse('article',kwargs=kwargs)
  10. print(url)
  11. condition={}
  12. for k,v in kwargs.items():
  13. kwargs[k]=int(v) #转成数字类型
  14. if v=='0':
  15. pass
  16. else:
  17. condition[k]=v
  18.  
  19. article_type_list=models.ArticleType.objects.all()
  20. category_list=models.Category.objects.all()
  21.  
  22. result=models.Article.objects.filter(**condition)
  23. return render(
  24. request,
  25. 'article.html',
  26. {
  27. 'result':result,
  28. 'article_type_list':article_type_list,
  29. 'category_list':category_list,
  30. 'arg_dict':kwargs
  31. }
  32. )

article.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. .condition a{
  8. display:inline-block;
  9. padding:3px 5px;
  10. border:1px solid #dddddd;
  11. margin:5px 5px;
  12. }
  13. .condition a.active{
  14. background-color:brown;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <h1>过滤条件</h1>
  20. <div class="condition">
  21. <div>
  22. <div>article_type</div>
  23. {% if arg_dict.article_type_id == 0 %}
  24. <a class="active" href="/article-0-{{arg_dict.category_id}}.html">全部</a>
  25. {% else %}
  26. <a href="/article-0-{{arg_dict.category_id}}.html">全部</a>
  27. {% endif %}
  28. {% for row in article_type_list %}
  29. {% if row.id == arg_dict.article_type_id %}
  30. <a class="active" href="/article-{{row.id}}-{{arg_dict.category_id}}.html">{{row.caption}}</a>
  31. {% else %}
  32. <a href="/article-{{row.id}}-{{arg_dict.category_id}}.html">{{row.caption}}</a>
  33. {% endif %}
  34. {% endfor %}
  35. </div>
  36. <div>
  37. <div>category</div>
  38. {% if arg_dict.category_id == 0 %}
  39. <a class="active" href="/article-{{arg_dict.article_type_id}}-0.html">全部</a>
  40. {% else %}
  41. <a href="/article-{{arg_dict.article_type_id}}-0.html">全部</a>
  42. {% endif %}
  43.  
  44. {% for row in category_list %}
  45. {% if row.id == arg_dict.category_id %}
  46. <a class="active" href="/article-{{arg_dict.article_type_id}}-{{row.id}}.html">{{row.caption}}</a>
  47. {% else %}
  48. <a href="/article-{{arg_dict.article_type_id}}-{{row.id}}.html">{{row.caption}}</a>
  49. {% endif %}
  50. {% endfor %}
  51. </div>
  52. </div>
  53. <h1>查询结果</h1>
  54. <ul>
  55. {% for row in result %}
  56. <li>{{row.id}}-{{row.title}}</li>
  57. {% endfor %}
  58. </ul>
  59. </body>
  60. </html>

页面效果:

12.对现有程序进行改版,把复杂的逻辑判断写到函数里面。

在day25下面创建1个文件夹,命名为:templatetags,下面新建一个filter.py文件

程序粘贴:

models.py

  1. from django.db import models
  2. # Create your models here.
  3.  
  4. class Category(models.Model):
  5. caption=models.CharField(max_length=16)
  6.  
  7. class ArticleType(models.Model): #如果类型是可增可减的,我们就把它放到表里面
  8. caption=models.CharField(max_length=16)
  9.  
  10. class Article(models.Model):
  11. title=models.CharField(max_length=32)
  12. content=models.CharField(max_length=255)
  13. category=models.ForeignKey(Category)
  14. article_type=models.ForeignKey(ArticleType)

urls.py

  1. from django.conf.urls import url
  2. from django.contrib import admin
  3. from app01 import views
  4.  
  5. urlpatterns = [
  6. url(r'^admin/', admin.site.urls),
  7. url(r'^article-(?P<article_type_id>\d+)-(?P<category_id>\d+).html', views.article,name='article'),
  8. ]

views.py

  1. from django.shortcuts import render
  2. from app01 import models
  3.  
  4. def article(request,*args,**kwargs):
  5. # {'article_type_id':'1','category_id':'2'},但是这里面没有包含“全部”所对应的项。
  6. print(kwargs)
  7. print(request.path_info)
  8. from django.urls import reverse
  9. url=reverse('article',kwargs=kwargs)
  10. print(url)
  11. condition={}
  12. for k,v in kwargs.items():
  13. kwargs[k]=int(v) #转成数字类型
  14. if v=='0':
  15. pass
  16. else:
  17. condition[k]=v
  18.  
  19. article_type_list=models.ArticleType.objects.all()
  20. category_list=models.Category.objects.all()
  21.  
  22. result=models.Article.objects.filter(**condition)
  23. return render(
  24. request,
  25. 'article.html',
  26. {
  27. 'result':result,
  28. 'article_type_list':article_type_list,
  29. 'category_list':category_list,
  30. 'arg_dict':kwargs
  31. }
  32. )

article.html

  1. {% load filter %}
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title>Title</title>
  7. <style>
  8. .condition a{
  9. display:inline-block;
  10. padding:3px 5px;
  11. border:1px solid #dddddd;
  12. margin:5px 5px;
  13. }
  14. .condition a.active{
  15. background-color:brown;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <h1>过滤条件</h1>
  21. <div class="condition">
  22. <div>
  23. {% filter_all arg_dict 'article_type_id' %}
  24. {% filter_article_type article_type_list arg_dict %}
  25. </div>
  26.  
  27. <div>
  28. {% filter_all arg_dict 'category_id' %}
  29.  
  30. {% for row in category_list %}
  31. {% if row.id == arg_dict.category_id %}
  32. <a class="active" href="/article-{{arg_dict.article_type_id}}-{{row.id}}.html">{{row.caption}}</a>
  33. {% else %}
  34. <a href="/article-{{arg_dict.article_type_id}}-{{row.id}}.html">{{row.caption}}</a>
  35. {% endif %}
  36. {% endfor %}
  37. </div>
  38. </div>
  39. <h1>查询结果</h1>
  40. <ul>
  41. {% for row in result %}
  42. <li>{{row.id}}-{{row.title}}</li>
  43. {% endfor %}
  44. </ul>
  45. </body>
  46. </html>

filter.py

  1. from django import template
  2. from django.utils.safestring import mark_safe
  3.  
  4. register=template.Library()
  5.  
  6. @register.simple_tag
  7. def filter_all(arg_dict,k):
  8. if k == 'article_type_id':
  9. n1=arg_dict['article_type_id']
  10. n2=arg_dict['category_id']
  11. if n1 == 0:
  12. ret = '<a class="active" href="/article-0-%s.html">全部</a>' % n2
  13. else:
  14. ret = '<a href="/article-0-%s.html">全部</a>' % n2
  15. else:
  16. n1 = arg_dict['category_id']
  17. n2 = arg_dict['article_type_id']
  18. if n1 == 0:
  19. ret = '<a class="active" href="/article-%s-0.html">全部</a>' % n2
  20. else:
  21. ret = '<a href="/article-%s-0.html">全部</a>' % n2
  22. return mark_safe(ret)
  23.  
  24. @register.simple_tag
  25. def filter_article_type(article_type_list,arg_dict):
  26. ret=[]
  27. for row in article_type_list:
  28. if row.id == arg_dict['article_type_id']:
  29. temp='<a class="active" href = "/article-%s-%s.html">%s</a>'%(row.id,arg_dict['category_id'],row.caption,)
  30. else:
  31. temp = '<a href = "/article-%s-%s.html">%s</a>'%(row.id,arg_dict['category_id'],row.caption,)
  32. ret.append(temp)
  33. return mark_safe(''.join(ret))

页面效果:

13. 如果articletype是一成不变的,那么我们可以尝试把数据写到内存中。重新创建表

models.py

  1. from django.db import models
  2. # Create your models here.
  3.  
  4. class Category(models.Model):
  5. caption=models.CharField(max_length=16)
  6.  
  7. # class ArticleType(models.Model): #如果类型是可增可减的,我们就把它放到表里面
  8. # caption=models.CharField(max_length=16)
  9.  
  10. class Article(models.Model):
  11. title=models.CharField(max_length=32)
  12. content=models.CharField(max_length=255)
  13. category=models.ForeignKey(Category)
  14. # article_type=models.ForeignKey(ArticleType)
  15.  
  16. # 如果类型是一成不变的,我们就把它放到内存里面。它就永远只在内存中保存一份。
  17. type_choice=(
  18. (1,'Python'),
  19. (2,'OpenStack'),
  20. (3,'Linux'),
  21. )
  22. article_type_id=models.IntegerField(choices=type_choice)

程序:

  1. python manage.py makemigrations
  2. python manage.py migrate

程序修改的部分:

页面效果同上。

Day25-博客系统的更多相关文章

  1. 欢迎阅读daxnet的新博客:一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统

    2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为"希赛网" ...

  2. ASP.NET + EF + SQL Server搭建个人博客系统新手系列(一):界面展示

    第一次写博客,可能有些地方描述的不准确,还请大家将就.本人大四学生,学了半年C#,半年.net,但是很遗憾,学完之后只会写个hello word.老师教的过程中总是会套用一些模板,特别是后台,完全封装 ...

  3. 一个基于Microsoft Azure、ASP.NET Core和Docker的博客系统

    2008年11月,我在博客园开通了个人帐号,并在博客园发表了自己的第一篇博客.当然,我写博客也不是从2008年才开始的,在更早时候,也在CSDN和系统分析员协会(之后名为“希赛网”)个人空间发布过一些 ...

  4. 【完全开源】Django多人博客系统——支持MarkDown和tinyMce

    目录 说明 功能 如何使用 说明 这是一个用Django开发的多人博客系统,功能简单,但完全满足公司内部或个人的博客使用需求.支持普通富文本编辑器(tinyMCE)和MarkDown编辑器 由于嫌弃D ...

  5. 从零开始,搭建博客系统MVC5+EF6搭建框架(5),博客详情页、留言、轮播图管理、右侧统计博文

    一.博客系统进度回顾 上一遍博客介绍到,系统已经实现到了发布以及前台布局展示,接下来就是实现一些,详情页,留言.轮播图管理.右侧博文统计信息实现. 二.博客系统详情页实现 2.1先来看看详情页展示的效 ...

  6. 从零开始,搭建博客系统MVC5+EF6搭建框架(4)下,前后台布局实现、发布博客以及展示。

    一.博客系统进度回顾 目前已经完成了,前台展示,以及后台发布的功能,最近都在做这个,其实我在国庆的时候就可以弄完的,但是每天自己弄,突然最后国庆2天,连电脑都不想碰,所以就一直拖着,上一篇写了前端实现 ...

  7. 从零开始,搭建博客系统MVC5+EF6搭建框架(4)上,前后台页面布局页面实现,介绍使用的UI框架以及JS组件

    一.博客系统进度回顾以及页面设计 1.1页面设计说明 紧接前面基础基本完成了框架搭建,现在开始设计页面,前台页面设计我是模仿我博客园的风格来设计的,后台是常规的左右布局风格. 1.2前台页面风格 主页 ...

  8. 从零开始,搭建博客系统MVC5+EF6搭建框架(3),添加Nlog日志、缓存机制(MemoryCache、RedisCache)、创建控制器父类BaseController

    一.回顾系统进度以及本章概要 目前博客系统已经数据库创建.以及依赖注入Autofac集成,接下来就是日志和缓存集成,这里日志用的是Nlog,其实还有其他的日志框架如log4,这些博客园都有很多介绍,这 ...

  9. 从零开始,搭建博客系统MVC5+EF6搭建框架(1),EF Code frist、实现泛型数据仓储以及业务逻辑

    前言      从上篇30岁找份程序员的工作(伪程序员的独白),文章开始,我说过我要用我自学的技术,来搭建一个博客系统,也希望大家给点意见,另外我很感谢博客园的各位朋友们,对我那篇算是自我阶段总结文章 ...

  10. 【ASP.NET实战教程】基于ASP.NET技术下多用户博客系统全程实战开发(NNblog)

    岁末主推:牛牛老师主讲,多用户博客系统,基于ASP.NET技术,年后将带来移动业务平台项目项目目标: 打造个性品牌Blogo,定制多用户博客 为每一个博客用户提供个性化的 blogo解决方案,打造精品 ...

随机推荐

  1. [HNOI2012]矿场搭建 BZOJ2730 点双+结论

    Description 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤点设立救援出口,使得无论哪一 ...

  2. 20155304《网络对抗》Exp7 网络欺诈技术防范

    20155304<网络对抗>Exp7 网络欺诈技术防范 实践内容 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法.具体实践有 (1)简单应用SET工具建立冒名网 ...

  3. 2017-2018-2 20155315《网络对抗技术》Exp6 :信息搜集与漏洞扫描

    实验目的 进行信息搜集的工作,为实战做准备 教程 实验内容 外围信息搜集 NMAP OpenVAS 实验步骤 (一)各种搜索技巧的应用 实战的前提是进行信息搜索.当我们想要有针对地进行操作的时候,就要 ...

  4. python 回溯法 子集树模板 系列 —— 15、总结

    作者:hhh5460 时间:2017年6月3日 用回溯法子集树模板解决了这么多问题,这里总结一下使用回溯法子集树模板的步骤: 1.确定元素及其状态空间(精髓) 对每一个元素,遍历它的状态空间,其它的事 ...

  5. Eclispe与JDK

    一.Eclispe 1.1 Eclispe发布版本 下面是目前已知的版本代号 (Release)[2015年2月] Eclipse 3.1 版本代号 IO [木卫1,伊奥] Eclipse 3.2 版 ...

  6. LeetCode Container With Most Water (Two Pointers)

    题意 Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai ...

  7. C#_添加xml文件

    引用:System.Xml; XmlDocument doc = new XmlDocument(); XmlElement Root = doc.CreateElement("Root&q ...

  8. 01_python2.x和python3.x中range()的区别

    Py2.x 1) .range 和xrange都是经常使用的,特别是range()返回一个列表 2) .xrange()一般用来创建迭代对象 Py3.x xrange()不存在了,只有range()而 ...

  9. HTML5遇到的问题

    一.Uncaught SyntaxError: Unexpected identifier 解决办法: Uncaught SyntaxError: Unexpected identifier这个问题, ...

  10. 第四篇——Spring音乐登录界面设计及实现(C#)

    Spring音乐播放器,我们小组设计其启动时有一个登录界面,用户初次可以注册,输入用户名和密码,点击注册即将输入信息保存到register文本文件中:如果已有用户名,输入用户名和密码,点击登录,程序会 ...