zoukankan      html  css  js  c++  java
  • Linux环境下django初入

    python -m pip install --upgrade pip

    终端中
    一. 创建项目:
    1.django-admin startproject mysite(第一种比较好)
    2.django-admin startproject mysite .

    二. 启动该项目的django
    python manage.py migrate
    python manage.py runserver
    用http://127.0.0.1:8000 | http://localhost:8000访问

    三. 创建该网站的第一个功能:
    python manage.py startapp blog
    或者
    django-admin startapp blog

    在mysite/settings中的Installed_apps = ['增加功能名',]
    在blog/models.py中添加数据模型
    根据数据模型生成数据库表,在blog/migration中生成BlogArticles模型
    :Python  manage.py makemigrations
    在数据表的前提下,创建数据库:python3.5  manage.py  migrate
    

    四.创建SQLite数据库:
    sudo apt-get install sqlite3
    安装图形界面
    sudo apt-get install sqlitebrowser

    五. 发布博客文章:
    先创建超级用户:python manage.py createsuperuser
    用户名:admin
    密码:zwsPassword123

    运行Django:python manage.py runserver
    登陆Django:http://localhost:8000/admin
    

    六. 显示博客信息:
    在创建数据模型后,Django会自动的创建API,用来连接数据库
    在交互式下,进行数据库操作:python manage.py shell
    from django.comtrib.auth.models import User
    from blog.models import BlogArticles
    做到上面这些,还不能发表文章,必须在这个功能的admin.py中进行模块注册
    from django.contrib import admin
    from .models import BlogArticles

    admin.site.register(BlogArticels)
    
    现在可以愉快的写文章了
    
    你会发现文章在网页上没有显示作者,写文章的时间
    在admin.py中接着添加东西
    class BlogArticlesAdmin(admin.ModelAdmin):
    	list_display = ("title", "author","publish")
    	list_filter = ("publish", "author")
    	search_fields = ("title", "body")
    	raw_id_fields = ("author",)
    	date_hierarchy = "publish"
    	ordering = ["publish", "author"]
    admin.site.register(BlogArticles, BlogArticlesAdmin)
    

    七. 我们的目的是为了发表博客给被人看,所以必须有一个和用户的交互页面
    首先在blog的功能中的view.py中添加要展示的数据
    然后在新建一个视图模板文件夹templates>base.html blog >titles.html
    视图和模板编写完后,还要进行url的配置,以便他人访问

    为了防止访问不存在的网页:
    	from django.shortcuts import render, get_object_or_404
    	from .models import BlogArticles
    	def blog_article(request, article_id):
    		article = get_object_or_404(BlogArticles, id = article_id)
    		pub = article.publish
    		return render(request, "blog/content.html", {"article":article, "publish": pub})
    

    text:
    1.检查文件的所在地: whereis django-admin.py
    2.设置./mysite/setting 中设置项目为中文
    LANGUAGE_CODE = 'zh-Hans'
    3.设置项目时区:TIME_ZONE = 'Asia/Shanghai'

    4.在Django中,开发模式:不需要配置服务器,像Apache or Nginx
        但在生产模式中,因为 Django内部就自带了Web服务器功能,否则就需要进行部分配置
    
    5. 在开发模式中,Django会自动检测到修改的代码并重新加载,不需要每一次修改代码后重新启动Web服务器,只有增加文件时,才要重启Django服务器
    
    6.在ubuntu的终端中打开文档:gedit 文档名
    
    7.__init__() missing 1 required positional argument: 'on_delete':
    	在author中添加on_delete=models.CASCADE
    
    8.python manage.py sqlmigrate blog 0001:查看文件的sql形式
    
    9.django.db.utils.OperationalError: database is locked:
    
    10.模型ORM:(Object-Relational Mapping)
    	在关系型数据库和业务实体对象之间进行映射,不用和复杂的SQL语句打交道
    	可移植性:更换数据库类型,不需要对ORM进行修改
    	安全性好
    	查询与法简单
    
    	ORM的表现形式:编写数据模型类,通常写在每个应用的models.py
    		每个数据模型类都是django.db.models.Model的子类
    		应用名称规范:应用名_(model_name)
    		数据模型类 --> 数据库表
    
    11. MVC(Model-View-Controller)
    	M:数据储存和读取部分, 由Django的models.py的数据模型处理
    	
    	V:确定要显示哪些内容,及如何显示  由视图和模板显示(view.py  Template)
    
    	C:根据客户端的请求映射到相应的视图, 由Django的框架的URLconf设置,调用相应的函数
           
    
           MTV:View相当于MVC中的C的控制器
    
    12. vim使用:
    	sudo vim /etc/vim/vimrc 
    
    	set nu        #显示行号
    	set tabstop=4   #tab缩进为4  
    	ctrl+s 停止输入,可以ctrl+q 恢复输入
    	dd 删除一行
  • 相关阅读:
    分页bootstrap
    导航条bootstrap
    导航bootstrap
    栅格系统bootstrap
    「ICPC2015 WF」Pipe Stream
    「LOJ#3399」Communication Network
    「WC2019」数树
    「UTR #3」量子破碎
    XJOI1105模拟赛 积木游戏
    XJOI1104NOIP模拟赛
  • 原文地址:https://www.cnblogs.com/reyirfw/p/12701175.html
Copyright © 2011-2022 走看看