La mayoría de los proyectos actuales de código abierto de páginas de navegación no son muy personalizables y la información a la que las personas quieren prestar atención está demasiado dispersa. Por lo tanto, decidí escribir una página de navegación que los usuarios puedan personalizar en gran medida e integrar la información y las funciones. ellos necesitan.
¡Se reanudan las actualizaciones! He estado ocupado con el trabajo durante los últimos dos años y no he tenido mucha energía. Me tomaré el tiempo para repararlo recientemente.
El front-end usa Vue.js, el back-end usa Python y MariaDB+Redis proporciona almacenamiento de datos. El marco de front-end usa Element UI, el marco de back-end usa Flask y el ORM de back-end usa Peewee.
? Si tiene algún ERROR/requisito/sugerencia, adjunte pasos de reproducción/ideas y envíe los problemas.
¡Bienvenida estrella!
? Lo he estado usando personalmente durante varios años en el aeropuerto. Es rápido y barato. ¡Lo recomiendo mucho! ¡Haga clic en este enlace!
La promoción interna de reclutamiento social de ByteDance puede simplemente hacer clic en este enlace para enviar el código de promoción interna de reclutamiento del campus: AWN958P, ¡bienvenido a reenviar y difundir!
La rama de desarrollo es una rama en desarrollo y puede tener problemas de ejecución. Se recomienda utilizar la rama maestra para las pruebas de implementación.
Docker ya está trabajando en ello~
Primero necesita Python3, Pip, MySQL (se usó MariaDB durante las pruebas) y el entorno Redis.
La clave aplicada para SeverChan se utiliza para enviar recordatorios a WeChat; la clave utilizada para Zefeng Weather se utiliza para obtener información meteorológica. El correo electrónico y la contraseña se envían de forma predeterminada. Consulte el método de adquisición de contraseña del buzón QQ.
Una vez que tenga el entorno, use python3 para ejecutar start.py en el directorio raíz y siga las instrucciones.
Tabla de contenido | contenido |
---|---|
/backend | código de fondo |
/backend/run.py | Archivo de entrada de backend |
/Interfaz | código de interfaz |
/distrito | El producto de la compilación front-end. |
/subir | Almacenar archivos subidos por los usuarios |
/fondos de pantalla | Almacenar fondos de pantalla de Bing extraídos |
Puede hacer clic aquí para usar vscode y verificar temporalmente el código.
Entrada: Página de inicio
Función: salta a la URL de búsqueda después de ingresar el contenido. Al ingresar a la página, el foco se coloca automáticamente en el cuadro de búsqueda. Al ingresar texto, aparecen mensajes (debe configurar la función de devolución de llamada del motor correspondiente en la tabla de datos search_engines). Si agrega o elimina motores, también está en la base de datos.
Entrada: coloque el nombre de usuario en la esquina superior izquierda después de iniciar sesión en la Consola
Función: proporciona la entrada del componente front-end registrada en la tabla de la consola para facilitar futuras operaciones de clasificación o control de permisos. Si necesita agregar un módulo front-end, además de escribir el negocio front-end, también debe agregar un. registro en la tabla de la consola.
Entrada: después de iniciar sesión, coloque el nombre de usuario en la esquina superior izquierda - consola - plataforma de ejecución de scripts.
Función: Controlador unificado para programas en segundo plano. Todos los formularios de front-end se generan mediante la configuración y no es necesario tocar el código de front-end. Puede enviar el script al script de ejecución de back-end completando el formulario generado por la configuración y mostrando los resultados de la ejecución. También tiene la capacidad de ejecutar scripts con regularidad, reproducir tareas ejecutadas anteriormente y registrar el tiempo de ejecución, registrar registros de operaciones, personalizar formularios de registro de operaciones y otras funciones humanizadas.
Aviso:
Módulo:
Editar guión:
Opciones iniciales:
Opciones de componentes:
print()
directamente en el script para imprimir el texto que debe generarse. Además, a través de un determinado formato de datos, se pueden inicializar las opciones del componente selector. abajo: import json
d = {
'code' : 200 , # 状态码,非必填,无实际作用
'data' : {
'msg' : 'hello n world qwe n qewqweewqwe' , # 展示的文本,非必须,会被解析为html,使用"n"换行
'value' : '123' , # 非必须,当传递value时,会将组件内的值替换成传回的值
'options' : [ # 非必须,当传递options时,会将选择器组件内的选项替换成传回的选项
{
'label' : '234' , # 标签,用于选择器组件展示的值
'value' : '234' # 值,用于选择器组件选择时实际代表和传递的值
},
]
}
}
print ( json . dumps ( d ))
Entrada: coloque el nombre de usuario en la esquina superior izquierda después de iniciar sesión-Consola-Cuenta y permisos
Función: un sistema de control de permisos a nivel de interfaz escrito utilizando el modelo "permiso de rol de usuario". La interfaz puede controlar los permisos mediante un decorador. De forma predeterminada, cuando un usuario solicita una interfaz, la IP solicitante debe ser coherente con la IP utilizada al iniciar sesión. Esta es una política relativamente estricta y se puede desactivar en "/backend/app/privilege/privilege_control.py:24".
Módulo:
Configuración de usuario: agregar usuarios, deshabilitar usuarios, eliminar usuarios, modificar roles de usuario, modificar contraseñas de usuario
Configuración de permisos correspondientes al rol: agregar roles, deshabilitar roles, eliminar roles, modificar nombres de roles, modificar permisos correspondientes al rol
Configuración de permisos: agregar permisos, deshabilitar permisos, eliminar permisos, modificar permisos
Entrada: después de iniciar sesión, coloque el nombre de usuario en la esquina superior izquierda-Consola-Modificar el componente de la página de inicio
Función: arrastre y suelte para modificar la forma en que se muestra la página de inicio. El padre de un componente se define como "conjunto de componentes". Cuando hay y solo hay un conjunto de componentes, la página no muestra el título del conjunto de componentes, solo muestra los componentes que contiene. la página muestra Conjuntos de componentes y los componentes que contienen
Botón: use el arrastre hacia la izquierda y hacia la derecha para editar el orden del conjunto de componentes, use el botón redondo más en el lado derecho del conjunto de componentes para agregar un conjunto de componentes, use el botón de edición dentro de cada conjunto de componentes para modificar el nombre del componente conjunto, use cada componente Use el botón Eliminar dentro del conjunto para eliminar el conjunto de componentes use el método de arrastre hacia arriba y hacia abajo para editar el orden de los componentes en el conjunto de componentes, use el botón cuadrado más en cada conjunto de componentes para agregar componentes, y use el botón Eliminar en el lado derecho del componente para eliminarlo. Los detalles del componente no admiten modificaciones. Puede cambiar manualmente la biblioteca (widget) para modificarlo.
Entrada: coloque el nombre de usuario en la esquina superior izquierda después de iniciar sesión - disco de red/cama de imágenes
Disco de red:
Una función de disco de red simple que admite compartir a través de enlaces de descarga. No hay límite en el tamaño de carga de archivos ni en la velocidad de descarga. Sin embargo, al cargar archivos grandes, debe esperar un tiempo hasta que se complete la carga. El archivo se almacena en la carpeta de carga del directorio raíz y se crea una subcarpeta denominada Fecha.
Botón: La parte superior de la interfaz es el botón de cargar archivo. Puede hacer clic y seleccionar el archivo o cargarlo arrastrándolo al navegador. Los botones en la lista de archivos a continuación son: 1. Botón Descargar: haga clic para descargar. el archivo; 2. aparece el botón Compartir (no compartido): después de hacer clic, se generará un enlace para compartir. Después de compartirlo con otros, otros pueden pegarlo en el navegador para activar la descarga del archivo. y comprimido, y la descarga real El enlace de descarga se comprimirá en un enlace corto para facilitar su uso y el enlace tiene un token de autenticación para garantizar la seguridad básica. 3. Botón Copiar enlace compartido (aparece después de compartir): haga clic para copiar el enlace compartido al portapapeles. Botón Cancelar Compartir (aparece después de compartir): invalida el enlace para compartir y cancela el uso compartido. 5. Botón Eliminar: elimina lógicamente el archivo. 6. Botón Modificar nombre de archivo, puede modificar el nombre del archivo;
Cama de imagen:
Si no inicia sesión, se mostrará la información meteorológica de la ubicación IP (limitada por API de terceros, y cuando la ubicación IP está en el extranjero, el soporte no es bueno. Puede personalizarlo después de iniciar sesión). El rango de visualización es IP + información de ubicación personalizada. Además, al solicitar datos, para garantizar la velocidad, se utilizará primero el caché. Los datos almacenados en caché son válidos durante 3 horas (modificados en backendappweatherweather_function.py:16). caché, se solicitará la API externa para obtener datos y almacenarlos en el caché
Botón: Agregar: agregue una nueva ciudad después de iniciar sesión; Ordenar: puede arrastrar para ordenar o eliminar ciudades personalizadas. Empujar: hay tres tipos de opciones climáticas anormales para empujar, a saber, clima de lluvia y nieve, aumento/caída repentino de la temperatura, y la calidad del aire, y la ubicación que se mostrará y la ubicación que se mostrará son independientes y se pueden configurar por separado.
Puede personalizarlo después de iniciar sesión. Los marcadores que se muestran cuando no ha iniciado sesión se modifican en la base de datos (bookmarks.user_id==0)
Botón: Agregar: agrega marcadores después de iniciar sesión. Configuración: arrastra los íconos para ordenar, eliminar o modificar marcadores después de iniciar sesión.
Encuentre aplicaciones en la App Store de Apple, controle sus precios y avise a los usuarios cuando estén por debajo de un umbral establecido.
Registre notas y envíe el contenido de las notas a WeChat/correo electrónico con regularidad. Como no queremos que la función sea demasiado complicada, el envío enviado no se puede revocar, pero se puede configurar varias veces. Es decir, el envío establecido se puede agregar a voluntad pero no se puede restar. Además, las notas se pueden revertir a versiones anteriores a través de la "máquina del tiempo", que es adecuada para eliminación accidental y otras situaciones.
Botones: cuando el mouse pasa por encima de los puntos suspensivos, pueden aparecer tres botones: Editar y Eliminar: edite o elimine la nota seleccionada y guarde todas las notas como una nueva versión después del envío. Recordatorio: haga clic para que aparezca el cuadro de diálogo de edición del recordatorio; Se puede acceder a través de WeChat/Recordar el contenido de la nota por correo electrónico, con una granularidad mínima de cinco minutos. Los botones circulares a continuación son el botón nuevo y el botón de la máquina del tiempo respectivamente. Las funciones no se describirán nuevamente.
Se implementa mediante traductores, utilizando el servicio de Alibaba. Cuando se ingresa texto en el área de entrada de la izquierda, después de un período de tiempo, se traducirá de acuerdo con el idioma seleccionado anteriormente.
El sistema utiliza una "plataforma de ejecución de scripts" para controlar los scripts y rastrear un fondo de pantalla de Bing todos los días, y el widget se desplaza para mostrar los fondos de pantalla dentro de los 7 días. Haga clic en la imagen para descargar la imagen original.
Supervise los precios del oro y puede establecer umbrales para enviar alertas cuando el precio supere el umbral. Debe configurar las tareas programadas en la "Plataforma de ejecución de scripts". Al rastrear datos, el rastreador omitirá el momento en que el oro nacional no esté abierto.
Rastree los datos de las acciones de los mercados de valores de Shanghai y Shenzhen, las acciones de Hong Kong y las acciones de EE. UU., y establezca una función de recordatorio cuando se supere el umbral.
Rastree los datos del fondo y establezca una función de recordatorio cuando se supere el umbral.
Agrega información de más de 20 sitios web y la recopila cada hora mediante tareas programadas. Se puede actualizar manualmente haciendo clic en el título. Algunas capturas de pantalla del contenido son las siguientes.
Nota: a partir de noviembre de 2020, Baidu, Weibo, Omelette y Sogou prohíben claramente a los usuarios individuales rastrear cualquier información. Elimine estrictamente los códigos relevantes al ejecutar el proyecto.
Dado que las reglas del sitio web pueden cambiar, verifique las fuentes de datos utilizadas en este proyecto en secuencia cuando ejecute el proyecto. Cuando el protocolo de robots prohíba el rastreo por parte de usuarios individuales, elimine el código relevante.
Cumpla con el protocolo de robots, cumpla con la ética de los rastreadores y cree un mejor entorno de Internet.
?El desarrollo de este proyecto se basa en una gran cantidad de excelentes proyectos de código abierto y servicios de sitios web:
El código se ha optimizado utilizando métodos como el almacenamiento en caché de datos y la limitación de la frecuencia para evitar que el rastreo de datos cause una mayor presión en el sitio web.
Los datos obtenidos son solo para referencia de aprendizaje. Si hay alguna infracción, comuníquese con nosotros de inmediato para eliminarla.
?Correo electrónico: [email protected]
?Si este proyecto te inspira o te ayuda, quizás quieras apoyar al desarrollador.
MPL-2.0